2013-04-25 15 views
0

我試着用'/bkickstarter/b'但它不能匹配這樣的文字:I backed this: http://kickstarter.com在JavaScript中,如何使用正則表達式匹配字符串中的多個子字符串?

更新:

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)); 

,打印空。

+0

什麼是'/ B .../B'?你是不是指'\ b'?你究竟想要匹配什麼? 「kickstarter」只出現一次 – Ian 2013-04-25 05:08:55

回答

0

刪除/b /b它將搜索只能分開的話,在這裏你需要包含「Kickstarter的」任意字符串。

,而不是把/kickstarter/i爲不區分大小寫

3

你可能想用\bb

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

如果你想匹配正則表達式的所有出現,加/g修改。

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

已更新問題。當我嘗試你的方法時,它返回null。 – Hick 2013-04-25 06:17:56

+0

@Hick,如果你想用'new RegExp'初始化,你在開始和結束時不需要'/',你需要轉義'\ b','g'應該作爲第二個參數傳遞。所以'新的RegExp(「\\ bkickstarter \\ b」,「g」)'將起作用。 – Dogbert 2013-04-25 06:30:54

0

原因var regex = new RegExp("/\bkickstarter\b/g");不起作用是因爲\在字符串文本語法作爲轉義序列的開始特殊的意義,所以\最終被刪除。

要在字符串中使用一個\系統字符,你需要逃避它,這意味着它會像\\中,因此最終的正則表達式

var regex = new RegExp("/\\bkickstarter\\b/g"); 
相關問題