在javascript中,如何使用正则表达式匹配字符串中多次出现的子字符串?

时间:2013-04-25 05:06:01

标签: javascript regex

我尝试使用'/bkickstarter/b',但无法与此类文字匹配:I backed this: http://kickstarter.com

更新

var regex = new RegExp("/\bkickstarter\b/g");
console.log("zach braff's new movie is now being backed on kickstarter: http://www.kickstarter.com/projects/1869987317/wish-i-was-here-1 … also, a documentary on a swartz:  http://www.kickstarter.com/projects/26788492/aaron-swartz-documentary-the-internets-o".match(regex));

打印出一个null。

3 个答案:

答案 0 :(得分:3)

您可能希望使用\b而不是b

"I backed this: http://kickstarter.com".match(/\bkickstarter\b/);

如果要匹配所有出现的正则表达式,请添加/g修饰符。

"I backed this: http://kickstarter.com kickstarter".match(/\bkickstarter\b/g);

答案 1 :(得分:0)

删除/b /b它只搜索单独的单词,在这里你需要任何包含'kickstarter'的字符串。

而是将/kickstarter/i放入不区分大小写的搜索

答案 2 :(得分:0)

var regex = new RegExp("/\bkickstarter\b/g");不起作用的原因是因为\在字符串文字语法中作为转义序列的开头具有特殊含义,因此\最终会被删除。 / p>

要在字符串中使用\字符,您需要将其转义,这意味着它看起来像\\,因此您的最终正则表达式

var regex = new RegExp("/\\bkickstarter\\b/g");