2017-03-26 14 views
-1

Javascriptで正規表現パターンを作成しています。正規表現で引用符が付いていて引用符で囲まれていない

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

これは、それが(これはところで、電子メールのパターンである)のJavascriptで動作するはずと主張し、私のサイト上で使用された場合、それは間違いないhttp://scriptular.com/で試験しました。

Googleを検索するパターンを引用符で囲むと文字列に変換されることがわかりました。文字列には、'execute not found '例外を説明する.execメソッドがありません。しかし、再び引用符を削除すると、「予期しないトークン」例外が多く発生します。

\を使用して文字をエスケープすると、エラーに影響しないように見えるので、これを行う正しい方法は何ですか?必要に応じて

はここで、関連するコードである(jQueryの使用しています):

$('#email-btn').click(function(){ 
    var re = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; 
    var t = $('#email').val(); 
    if (re.exec(t)) { 
     console.log(t+' Works'); 
    } 
}); 

答えて

0

変数reは、あなたがしてexec()を使用することができますRegExpオブジェクトを作成する必要があり、文字列リテラルです。

var re = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; 
var regExp = new RegExp(e); 
if(regExp.exec(t)) 
    .... 
+0

完璧、よろしくお願いいたします。受け入れますが、明らかに私は10分待つ必要があります。 – TianRB

関連する問題