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

plヘルプ。なぜ失敗するのか理解できません。

4

2 に答える 2

1

フェリックスが言ったこと:

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

RegExpオブジェクトは、最初に文字列から作成する必要があります。

上記の例では、静的文字列を置き換えているため、上記のとを使用string.replace('staticTextToRemove','')または使用できます。splitjoin

少しパフォーマンスが良いと聞きましたsplit().join()...そしてそれは巧妙なトリックです。

于 2013-01-16T02:31:17.210 に答える
0

次の行を追加して、regex_pattをオブジェクトにしましょう。

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