需要你的帮助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;
}
我怎样才能完成我追求的目标?
感谢您的帮助。
答案 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以获取有关此连接的更多信息。