2016-11-24 7 views
-1

短い質問:次の行はhttp://www.regexpal.com/ようSyntaxError: nothing to repeatJavaScriptが間違っていますRegEx?

var regexTel = new RegExp('\+[0-9 ]+'); 

ツールを投げるには、パターンが正常に動作することを言います。

+0

ありがとう、Wiktor。私はそれを見つけるのが苦労していた! –

+0

また、http://stackoverflow.com/questions/39568096/javascript-regexp-in-replace-not-workingとその他いくつか。 –

答えて

2

\は、文字列リテラルにだけでなく、正規表現で特殊なので、文字列リテラル内の単一\ことを忘れないでください文字列レベルでそれに続くものをエスケープします。あなたの正規表現は実際には\をまったく持っていません。 (\+は文字列リテラルでは意味がないので、それはsimpley +として扱われます。)あなたは、別のバックスラッシュで文字列レベルでそれをエスケープする必要があるだろう:

var regexTel = new RegExp('\\+[0-9 ]+'); 

しかし、JavaScriptで、あなたはしないでください文字列を使用する必要があります。代わりに正規表現のリテラルを使用してください。その問題はありません。

var regexTel = /\+[0-9 ]+/; 
0

何をしたいことは、バックスラッシュ\を繰り返している場合、あなたはそれをエスケープする必要があります:

var regexTel = new RegExp('\\+[0-9 ]+'); 
+0

電話の正規表現のようです。最初の+はリテラルなものです。接頭辞は – Korcholis

+1

コルコーリスが正しいです。 – user6537157

-1

「+」記号をエスケープする必要があります。あなたの正規表現では、 "\"記号は区切り文字として認識されます。 ゴー:

var regexTel = new RegExp(/\+[0-9 ]+/); 
0

他の人が指摘するように、それはあなたが正規表現に渡す文字列にスラッシュを追加するかです:

var regexTel = new RegExp('/\+[0-9 ]+/'); 

どちらかの使用を削除し、よりコンパクトなバージョンを使用しますRegExpオブジェクト:

var regexTel = /\+[0-9 ]+/; 
+0

よろしく!私が-2を持っている理由を下降者が私に示唆することはできますか? – Korcholis

-1

この

var regexTel = new RegExp(/\+[0-9 ]+/); 
てみてください
+1

これは有効な回答かもしれませんが、コードが何をし、どのように機能するかを説明することによって、他の人を助ける可能性が非常に高くなります。コードのみの回答は、それほど肯定的な注意を払わず、他の回答ほど有用ではありません。 – Aurora0001

関連する問題