0

在纯javascript中:运行以下命令时出现错误:

var arg_regex = 'myregex:/^[:a-z0-9\s!\\\/]+$/i';

regex_patt = arg_regex.replace(/^myregex:/,'');

if(regex_patt.test(stringtocheck)){
//good
} else {
//bad
}

错误:

regex_patt.test is not a function

请帮忙。无法弄清楚为什么它会失败。

4

2 回答 2

1

菲利克斯说的:

regex_string = arg_regex.split('myregex:/').join('').split('/i').join('');
regex_patt = new RegExp(regex_string);

RegExp 对象必须首先从字符串构造。

在上面的示例中,您正在替换一个静态字符串,因此您可以使用string.replace('staticTextToRemove','')或使用上面显示的splitand join

我听说split().join()它的性能稍微好一点......而且它是一个巧妙的技巧。

于 2013-01-16T02:31:17.210 回答
0

尝试添加这一行,让 regex_patt 成为一个对象:

    regex_patt = eval(regex_patt);
于 2013-01-16T03:34:44.367 回答