0

私の正規表現は/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/htmlで、要素の値が上記のパターンに設定された隠し要素として追加しました

私がこれを行うとき:

var regex = /^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/ 
var text = $(this).val()

そして、それでテストしregex.test(text)て問題なく動作します。

しかし、次のように正規表現を割り当てると:

var regex = $("#m"+id).val() // (my hidden element)

それからそれは動作しません。new RegExp を使用して割り当てようとしましたが、機能していません。値を文字列として返しているためだと思います$("#m"+id).val()(ここで正しい値が返されます)が、何を解析すればよいかわかりません。

どんな助けでも大歓迎です。

4

3 に答える 3

1

文字列から正規表現を構築したい場合は、RegExp クラスのコンストラクターを使用します。スラッシュなしの文字列を取るので、それらを削除する必要があります。.slice(1, -1)最初と最後の文字を削除します。これを使用してみてください:

var regex = new RegExp($("#m"+id).val().slice(1, -1));
于 2012-09-04T06:14:09.343 に答える
0

試す:

var regex = new RegExp($("#m"+id).val())
于 2012-09-04T06:15:52.350 に答える
0

先頭と末尾のスラッシュは、正規表現リテラルの場合にのみ使用されます。それらを削除して実際の正規表現を取得するとnew RegExp(str)、文字列を正規表現オブジェクトに変換するために使用できます。

于 2012-09-04T06:16:40.277 に答える