首页 > 解决方案 > 如果满足条件则匹配整个单词

问题描述

let str = 'text text example.com/?isExample=true more text'

if (str.match(/.com/i)) {
 ...
}

如何仅基于一个条件获得整个 example.com 链接?我只需要链接,也不需要文本。

所以预期的结果是example.com/?isExample=true

标签: javascript

解决方案


这是一个解决方案:使用肯定的前瞻断言,(?=…[your condition here]…)然后是要匹配的整个模式。

let str = 'text text example.com/?isExample=true more text'
console.log(str.match(/(?=\S*\.com)\S+/i));

这将匹配一个或多个非空白字符 ( \S+) 的任何序列,只要该序列包含与您的条件匹配的子序列。断言内部\S*意味着匹配的子序列可以在序列中的任何位置开始,而不仅仅是在开头。


推荐阅读