1

matchjavascriptで関数内に式を与えるにはどうすればよいですか?

例えば。

var val = $('#somElement').val();
var startWith = '#'
var match = val.match('/(\s)?' + startWith + '(.*?)(\s+|$)/'g);

match 関数は文字列なしでパラメーターを受け取るため、上記の行は間違っています。変数の値に基づいて動的に val.match にパラメーターを渡すことができるように変更するにはどうすればよいですか?

4

1 に答える 1

4

RegExp オブジェクトを明示的に構築する必要があります。

var match = val.match( new RegExp('(\\s)?' + startWith + '(.*?)(\\s+|$)', 'g') );

文字列定数の構文では特殊文字の引用にもバックスラッシュが使用され、先頭と末尾のスラッシュは必要ないため、バックスラッシュを 2 倍にする必要があることに注意してください。

于 2012-09-29T05:25:53.273 に答える