javascript - 带有动态变量的正则表达式不起作用

标签 javascript

我有以下正则表达式,它在 def 中查找 abc 的匹配项:

http://jsfiddle.net/82hyrpoL/

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/

相关文章:

javascript - 传递 JavaScript 函数以在新窗口对象中运行

javascript - 使用 forEach 和 .shift() 时结果不一致

javascript - Intern4 和 CDN 资源

javascript - 构建动态 json 树

javascript - 在 vue/typescript 中解析 CSV 文件

javascript - 替换 javascript 中的子字符串

javascript - 如何使用 JQuery 从自定义输入中获取 URL 参数

javascript - Ionic 和 Angularjs - 表单绑定(bind)似乎只是一种方式。

javascript - Angular JS $http 与 SharePoint Rest 解析响应

Javascript 返回我对象对象