2017-02-15 20 views
0

私は(より複雑なスニペットはそれほど働いていなかった私はそれをコメントアウトし、簡略化され、私が持っているもの、それはまだ動作しません。)このような電子メールを検証するためのシンプルなJSの機能を持っている:JavsScript関数から正規表現が機能しない - なぜですか?

function validateEmail(email) { 
 
    //var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 
 
    //return re.test(email); 
 
    var re = /\[email protected]\S+\.\S+/; 
 
    return re.test(email); 
 
} 
 

 
console.log(`TESTING THE VALIDATE FUNCTION - [email protected] RETURNS: ${validateEmail("[email protected]")}`);

これをコンソールで実行すると、正常に動作します。これを私のコード(A/Bテストツール)から実行すると、私は本当のことを期待していても毎回falseを返します。私は私がそれを把握することができないので、私は壁に私の頭を強打する必要があるように感じる。なぜこれが起こっているかもしれないのか?

+1

/\[email protected]\w+\.\w+/; –

+2

コンソールで動作するのは正規表現ではなく、A/Bツー​​ルがそれをチェックする方法です。あなたは正規表現にマッチさせるためにどのような方法を使うのか知っていますか? – Nicolas

+1

ログメッセージにさらに多くを追加すると、入力文字列が表示されることがあります。あるいは、 'validateEmail'関数の中からログインして、受信した内容を常に表示するようにしてください。これは、なぜそれが動作していないのか理解するのに役立ちます。 @Nicolasが言ったように、このコードは正常に動作しているので、使用しているA/Bテストはほぼ確実です。 – Whothehellisthat

答えて

1

私が使用しているツールが正規表現の文字列で自動的にエスケープされていることがわかりました。その結果、私の文字列は正しく評価されていませんでした。興味のある方は、私が使用しているA/BテストツールはSiteSpectです。

関連する問題