我想构建一个JavaScript正则表达式以匹配所有以“ ad”或“ ae”开头的单词,或所有包含“ -ad”和“ -ae”的单词。
这是我尝试过的:
var regex_string = "^[ad|ae]|-[ad|ae]";
var re = RegExp(regex_string, "i");
var matches = _.filter(data, function(r) {
if (re.test(r)) {
return true;
}
});
但是,这匹配所有以“ a”,“ d”或“ e”开头的单词。
如何修改正则表达式以仅匹配那些字符串?
JSFiddle在这里:http : //jsfiddle.net/xGgan/1/
因为[]
匹配里面的任何字母,所以它说“匹配a或d或|或a或e”。您需要将捕获组与or结合使用。
尝试
var regex_string = "(^(ad|ae)|-(ad|ae))";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句