0
我想正則表達式,像這樣的Javascript動態正則表達式解析
var regex_pattern = '/cat|bat|dog/i';
regex = new RegExp(regex_pattern, "i");
var string = "A dog saw a cat and a bat";
string.match(regex);
但它似乎並沒有被解析。我在做什麼錯誤的表達?
我想正則表達式,像這樣的Javascript動態正則表達式解析
var regex_pattern = '/cat|bat|dog/i';
regex = new RegExp(regex_pattern, "i");
var string = "A dog saw a cat and a bat";
string.match(regex);
但它似乎並沒有被解析。我在做什麼錯誤的表達?
你已經把一個正則表達式字面語法放在一個字符串中。您應該使用正則表達式語法:
var regex = /cat|bat|dog/i;
或者傳遞一個字符串(無定界符/改性劑)作爲第一個參數RegExp
constructor:
var regex = new RegExp('cat|bat|dog', 'i');
你也將需要g
標誌(全局修飾符)來測試正則表達式對所有可能的匹配,否則只返回第一個匹配。
完整的示例:
var regex = /cat|bat|dog/ig; //or new RegExp('cat|bat|dog', 'ig');
var string = "A dog saw a cat and a bat";
var matches = string.match(regex);
matches; //["dog", "cat", "bat"]