我正在尝试这样的正则表达式
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_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
构造函数:
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"]