开发者

javascript regexp help passing in a var to be included as part of the match

Need some help from you javascript regexp pro's

I have a function that I want to pass in some a "value" and a list of accepted characters. This function works in php, but the javascript variables don't work the same as in php, so I need some guiadance.

I would like to call this function like this:

isAlphaNumeric(myValue, "_-"); 

This would allow any number, or letter as well as the underscore and the hyphen, but no other characters

This is the function I have, but doesn't quite work right.

function isAlphaNumeric(value, allow)
{
    var result = /^[A-Za-z0-9+allow+]+$/.test(value)开发者_StackOverflow中文版;
    return result;
}

How can I accomplish what I'm after?

Thanks for the help.


Use RegExp object constructor

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

or

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


By creating a RegExp() object.

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

    return re.test(value);
}


Javascript doesn't handle variables inside strings/regexs directly. You have to create the Regex using the constructor like this:

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

Tested on: http://jsfiddle.net/ZLdtw/

Check this other SO question for more info on this concatenation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜