将正则表达式转换为可重用函数

时间:2015-10-25 02:41:12

标签: javascript jquery regex

我想在整个网站上制作可重复使用的功能进行验证。以下是我所做的事情。我正在努力。我'我被困在模式与正则表达式不匹配的地方。请指导我这样做的正确方法。

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') );

1 个答案:

答案 0 :(得分: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;
}