2016-09-23 16 views
0

私は正規表現@で1000hzのブートストラップバリデーターを使用してメール入力を検証していますが、 '@'文字をエスケープできません。誰にもアイデアはありますか?正規表現のエスケープ@文字

@@、@( '@')、さらには16進コード(@)を試しました。私はV53にGoogle Chromeを更新するまで進数は罰金働いていた、今ではもう

有効ではないことはここに私の入力です:validator.min.js:

<input type="text" pattern="^[a-zA-Z0-9\.\_%+-]+&#64;[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}" required data-error="Enter a valid email address" name="contractor-email" class="form-control" placeholder="e.g. [email protected]" /> 

はまた、Chromeは次のエラーメッセージがスローされます。パターン属性値^ [a-zA-Z0-9 ._%+ - ] + @ [a-zA-Z0-9 .-] +。[a-zA-Z] {2,4}は有効ではありません正規表現:Uncaught SyntaxError:無効な正規表現:/^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+.[a-a-AA-Z]{2 、4} /:無効なエスケープ

ありがとうございます。

+2

なぜあなたはそれを "エスケープ"する必要がありますか? '@ 'は特殊文字ではありません。 [a-zA-Z0-9 \。\ _%+ - ] + @ [a-zA-Z0-9 \。\ - ] + \。[a-zA-Z] { 2,4} "'仕事? [a-zA-Z] {2,4} "'のように 'pattern =" [\ w。%+ - ] + @ [a-zA-Z0-9 .-] + \エスケープは冗長で、 '[a-zA-Z0-9_]' = '\ w'です。また、パターンはデフォルトで固定されています –

+0

@ウィクショナリー「@」はカミソリC#mvcの特殊文字なので、それをエスケープする必要があります – vegas2033

+0

それから '\\ x40'または' \\ u0040'に置き換えてみてください。ダブルエスケープ '' \ ''についてはわかりませんが、おそらく単一のものが実行します。両方を確認してください。 –

答えて

0

だから、エラーが「@」記号からではなく、私の方法についてではなかったことが判明し、それが最善の方法であれば、私は知りませんが、使用する@は(「@」)

+0

から出てきたと思いますので、前に試しましたが、ほとんどのブラウザで動作しますが、Chrome V53 – vegas2033

+0

それは変です、私は53.0.2785.116のバージョンを使用しています。 –

0

の作品私の正規表現の最初の要素の文字をエスケープしました。次の正規表現の作品:^[a-zA-Z0-9%+-\._]+&#64;[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}

お手数をおかけしていただきありがとうございます。

関連する問題