我需要檢查動態生成的字符串的JS匹配。Javascript RegExp字符串模式
即。
for(i=0; i< arr.length; i++)
{
pattern_1="/part of "+arr[i]+" string!/i";
if(string.search(pattern_1) != -1)
arr_num[i]++;
}
但是,這段代碼不起作用 - 我推測是由於引號引起的。我該怎麼做呢?
非常感謝。
我需要檢查動態生成的字符串的JS匹配。Javascript RegExp字符串模式
即。
for(i=0; i< arr.length; i++)
{
pattern_1="/part of "+arr[i]+" string!/i";
if(string.search(pattern_1) != -1)
arr_num[i]++;
}
但是,這段代碼不起作用 - 我推測是由於引號引起的。我該怎麼做呢?
非常感謝。
/pattern/
文字只能用作文字。不在字符串中。
如果你想使用字符串模式創建一個正則表達式,你需要創建一個新的RegExp對象:
var re = new RegExp(pattern_1)
而且在這種情況下,你會忽略封閉frontslashes(/
)。這兩條線是相同的:
var re = /abc/g;
var re = new RegExp("abc", "g");
的問題是要傳遞一個字符串search
功能,因此它把它作爲一個字符串。嘗試使用RegExp對象,像這樣:
myregexp = new RegExp("part of " + arr[i] + " string!", "i")
if (string.search(myregexp) != -1) {
arr_num[i]++;
}
試試這個:
// note you dont need those "/" and that "i" modifier is sent as second argument
pattern_1= new RegExp("part of "+arr[i]+" string!", "i");
什麼是你想匹配?你是正確的,但如果你需要動態地創建正則表達式,你將需要使用新的'RegExp(「string」);'。 – 2010-01-08 18:54:57