[英]Javascript RegExp string pattern
我需要檢查JS匹配動態生成的字符串。
即。
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/
literal只能用作文字。 不在字符串中。
如果要使用字符串模式創建正則表達式,則需要創建新的RegExp對象:
var re = new RegExp(pattern_1)
在這種情況下,您將省略封閉的前綴( /
)。 這兩行是等價的:
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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.