javascript - 使用 match(),但它不适用于字符串变量

标签 javascript jquery

我有以下 fiddle :

jsfiddle

函数:

$('#testbutton').on("click", function(){
    test();
});

function test()
{
    var data = [];
    data['article'] = "monablanko";
    data['specialarticle'] = ["blanko", "bbsooel"];

    var tmp = data['specialarticle'].join("|");
    if( data['article'].match( /(tmp)/ ) )
    {
        $('#result').html("I found a match");
    }
    else
    {
        $('#result').html("I didn't found a match");
    }
}

我没有找到与此功能匹配的项。我的错误在哪里?当我使用

时,tmp 的类型是字符串

console.log(typeof tmp);

当我写作时

if( data['article'].match( /(blanko|bbsooel)/ ) )

然后我找到匹配项。

最佳答案

您匹配的是字符串文字 "tmp",而不是变量 tmp 中包含的值。像这样尝试:

 data['article'].match( new RegExp("(" + tmp + ")") )

例如:http://jsfiddle.net/4K8Km/

关于javascript - 使用 match(),但它不适用于字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24672101/

相关文章:

javascript - 从网站保存表格会产生更多数据,然后在页面上显示

javascript - couchdb/nano 多部分插入

javascript - Jquery form serialize() 只返回部分字段

javascript - 如何在该 span 标签内输出变量(位于 JavaScript 内但 HTML 上下文内)

javascript - JS 检查 Jquery inArray

jQuery - 根据屏幕尺寸执行脚本

javascript - 如何使用 javascript 以 YY-MM-DD 格式返回月份和年份?

javascript - 在 setTimeout 内创建 setTimeout 以停止

javascript - 如何使用 jQuery 获取每个选择器的兄弟

javascript - 方法返回比属性更多的长度