1

私はRFC からの正確な電子メール正規表現パターンを使用しています:

 [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

でも

vs に貼り付けると:

var emailPattern = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;

エラーで表示されます: http://i.stack.imgur.com/UkJJE.jpg

ここに画像の説明を入力

未定の文字列定数

このエラーを削除するにはどうすればよいですか?

4

1 に答える 1

3

//を区切り文字として使用する場合は、正規表現でエスケープする必要があると思います。そのため、正規表現では、/出現するたびにをに置き換えて\/ください。

重要なのは、最初と最後/が正規表現の実際の開始位置と終了位置を示すためにここにある/ため、パーサーがどこで停止するかを理解するには、正規表現内でエスケープする必要があるということです。

これはうまくいくはずです:

var emailPattern = /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;

コメントで指摘したように、構成をnew Regexp("...")使用すると、エスケープせずに正規表現を作成できます。

両方の構成は同等です。詳細はこちら

于 2013-02-08T21:52:59.647 に答える