私は電子メールアドレスを検証するための簡単な正規表現パターンを使用するには、私はこのパターンを見つけました:私はregex101上のパターンをチェックすると、予想通りJS、正規表現、奇妙な行動
^[^@][email protected][^@]+\.[^@]+$
それは(それがために一致しなくなります意味振る舞います例[email protected]
)。
だから、次の行:
/^[^@][email protected][^@]+\.[^@]+$/.test('[email protected]'); // false
しかし:
let patt = new RegExp('^[^@][email protected][^@]+\.[^@]+$');
patt.test('[email protected]'); // true
何?、私はクロムとFirefoxでテストしましたが、同じ動作です、誰も説明できますか?
を '\ .'それは文字列リテラルでよりも正規表現リテラルで別の何かを意味します。 –
'/^[^@][email protected][^@]+\.[^@]+$/.source!== '^ [^ @] + @ [^ @] + \。[^ @] + $ ' – Oriol