我有以下正则表达式,它在 def
中查找 abc
的匹配项:
var abc = 'foo',
def = '123456789qwertyuifoobar23rghfj';
if( def.match('/' + abc + '/i') ){
console.log('DONE!');
} else {
console.log('ERROR!');
}
但它没有返回 true。为什么?我做错了什么?
最佳答案
您必须使用 RegExp object 创建一个正则表达式:
var abc = 'foo',
def = '123456789qwertyuifoobar23rghfj',
rgexp = new RegExp(abc, 'i');
if( def.match(rgexp) ){
console.log('DONE!');
} else {
console.log('ERROR!');
}
或者(更紧凑):
var abc = 'foo',
def = '123456789qwertyuifoobar23rghfj';
if( new RegExp(abc, 'i').test( def ) ){
console.log('DONE!');
} else {
console.log('ERROR!');
}
正则表达式不是普通字符串。
关于javascript - 带有动态变量的正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32965034/