gpt4 book ai didi

javascript - 不包含字符组的字符串

转载 作者:行者123 更新时间:2023-11-27 23:42:24 24 4
gpt4 key购买 nike

我编写了正则表达式来查找文本中的网址:

/(http[^\s]+)/g

但现在我需要与此相同的表达式,但该表达式不包含某些子字符串,例如我想要所有不包含单词 google 的网址。

我怎样才能做到这一点?

最佳答案

这是实现这一目标的方法:

http:\/\/(?!\S*google)\S+

参见demo

JS:

var re = /http:\/\/(?!\S*google)\S+/g; 
var str = 'http://ya.ru http://yahoo.com http://google.com';
var m;

while ((m = re.exec(str)) !== null) {
document.getElementById("r").innerHTML += m[0] + "<br/>";
}
<div id="r"/>

正则表达式分割:

  • http:\/\/ - http://
  • 的文字序列
  • (?!\S*google) - 负向前瞻,从当前位置(即在 http:// 之后)执行前向检查,如果发现 0-or-more-non-spaces-heregoogle 比赛将被取消。
  • \S+ - 1 个或多个非空白符号(这是必要的,因为上面的前瞻并不真正消耗它匹配的字符)。

请注意,如果 URL 后面有任何标点符号,您可以在模式末尾添加 \b:

var re1 = /http:\/\/(?!\S*google)\S+/g; 
var re2 = /http:\/\/(?!\S*google)\S+\b/g;
document.write(
JSON.stringify(
'http://ya.ru, http://yahoo.com, http://google.com'.match(re1)
) + "<br/>"
);

document.write(
JSON.stringify(
'http://ya.ru, http://yahoo.com, http://google.com'.match(re2)
)
);

关于javascript - 不包含字符组的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com