javascript - 如果满足条件则匹配整个单词
问题描述
let str = 'text text example.com/?isExample=true more text'
if (str.match(/.com/i)) {
...
}
如何仅基于一个条件获得整个 example.com 链接?我只需要链接,也不需要文本。
所以预期的结果是example.com/?isExample=true
解决方案
这是一个解决方案:使用肯定的前瞻断言,(?=…[your condition here]…)
然后是要匹配的整个模式。
let str = 'text text example.com/?isExample=true more text'
console.log(str.match(/(?=\S*\.com)\S+/i));
这将匹配一个或多个非空白字符 ( \S+
) 的任何序列,只要该序列包含与您的条件匹配的子序列。断言内部\S*
意味着匹配的子序列可以在序列中的任何位置开始,而不仅仅是在开头。
推荐阅读
- json - 这个 JSON 响应顶部的 `)]}'` 有什么作用?
- reactjs - 如何修复 Jest 错误:ReferenceError: regeneratorRuntime 未定义
- mysql - 选择多个值
- c# - 发送带有内嵌图像的电子邮件时出现问题
- es6-promise - Modernizr 异步测试
- python - 如何通过 Beautiful Soup 过滤雅虎财经数据
- loops - 在 Tableau 中标记所有行相关的行
- javascript - 为什么 var prezzo 不刷新值?
- function - Powershell 函数字符串输出作为基于文件的函数的输入
- javascript - 扩展错误。未选中 runtime.lastError: 无法建立连接。接收端不存在