2017-01-26 27 views
0

私のJSで、私の会社のアプリケーションの "電話番号"フォームフィールドで既に動作している以下の正規表現を使用したいと思います。Regexはアプリケーションでは動作しますが、Regex101では動作しません

Regex101のプレイグラウンドに入れて777-777-7777で入力しようとすると、私はマッチを得ることができません。意味がない。誰でも問題の内容を知ることができますか?私はちょうどジュニア開発者としての正規表現をよりよく理解しようとしています。 Javascriptの正規表現で

[2-9]\\d{2}(-){0,1}[2-9]\\d{2}(-){0,1}\\d{4}$ 
+0

あなたの正規表現についての説明を(右側に)読んでみると、* \\は文字\と合致していることがわかります*。ところで、 '{0,1}'は '?'と書くことができます。また、最初にこれを '^'で固定したくないのですか? –

+0

ありがとうございます。すごいです。ちょうど追加された? –

答えて

0

あなたの正規表現は[2-9]\\d{2}(-){0,1}[2-9]\\d{2}(-){0,1}\\d{4}$のように見えるので、あなたは、バックスラッシュ(\)をエスケープする必要があります。

しかし、あなたの正規表現は追記として[2-9]\d{2}(-){0,1}[2-9]\d{2}(-){0,1}\d{4}$

あるのでRegex101のために、あなたは、それらをアンエスケープしなければなりません:あなたは本当に-をキャプチャする意味ですか?

+1

JavaScriptで正規表現が文字列として定義されている場合は、エスケープする必要があります。 JavaScriptには正規表現があり、エスケープする必要はありません: 'var regex =/regex /;' –

+0

@ ssc-hrep3はい、それを忘れてしまいました。 OPがバックスラッシュを脱出したことを考慮すると、彼は文字列を使用していたことを暗示していました。 –

+0

私は確かにでした! パターン:{message: "無効"、パラメータ: "[2-9] \\ d {2}(0)[2-9] \\ d {2}( - ){0、 1} \\ d {4} $ "}})); –

関連する問題