2015-10-25 37 views
1

我想在整个网站中创建可重用的验证函数。以下是我目前正在处理的内容。我被困在模式与正则表达式不匹配的地方。请指导我这样做的正确方法。将正则表达式转换为可重用函数

function match_str(str, pattern){ 
    mask = "/^[" + pattern + "]+$/"; 
    check = mask.test(str); 
    return check; 
} 

错误消息:掩模不是函数

function match_str(str, pattern){ 
    mask = /^[pattern]+$/; 
    check = mask.test(str); 
    return check; 
} 

错误消息:始终返回false

//Usage 
alert(match_str('test', 'a-z')); 

回答

4

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Description

有两种方法可以创建RegExp对象:文字符号和 构造函数。要指示字符串,字面 表示法的参数不使用引号,而构造函数 的参数使用引号。

假设你需要动态创建的正则表达式,你需要使用构造 - 根据您的要求,可能就像这样:

function match_str(str, pattern){ 
    var mask = new RegExp("^[" + pattern + "]+$"); 
    var check = mask.test(str); 
    return check; 
} 
+0

啊我今天新learn't东西。谢啦! –

+0

@红色病毒 - 谢谢!如果这解决了您的问题,请您考虑将此答案标记为已接受,让社群知道这个问题已解决? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – ziesemer

相关问题