javascript regexp帮助传入一个var作为匹配的一部分

时间:2011-02-16 02:18:12

标签: javascript regex

需要你的帮助javascript regexp pro's

我有一个函数,我想传递一些“值”和一个接受的字符列表。这个函数在php中工作,但javascript变量与php中的工作方式不同,所以我需要一些guiadance。

我想这样称呼这个函数:

isAlphaNumeric(myValue, "_-"); 

这将允许任何数字,或字母以及下划线和连字符,但不允许其他字符

这是我的功能,但不能正常工作。

function isAlphaNumeric(value, allow)
{
    var result = /^[A-Za-z0-9+allow+]+$/.test(value);
    return result;
}

我怎样才能完成我追求的目标?

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

使用RegExp对象构造函数

function isAlphaNumeric(value, allow)
{
    var re = new RegExp( '^[A-Za-z0-9'+allow+']+$');
    var result = re.test(value);
    return result;
}

function isAlphaNumeric(value, allow)
{
    return new RegExp( '^[A-Za-z0-9'+allow+']+$').test(value);
}

答案 1 :(得分:1)

创建RegExp()对象。

function isAlphaNumeric(value, allow) {
    var re = new RegExp('^[a-z0-9' + (allow ? allow : '') + ']+$');

    return re.test(value);
}

答案 2 :(得分:1)

Javascript不直接处理字符串/正则表达式中的变量。您必须使用如下构造函数创建正则表达式:

function isAlphaNumeric(value, allow)
{
    var result = new RegExp("^[A-Za-z0-9" + allow + "]+$").test(value);
    return result;
}

经过测试:http://jsfiddle.net/ZLdtw/

检查this other SO question以获取有关此连接的更多信息。