簡體   English   中英

Javascript RegExp字符串模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM