2017-05-25 4 views
1

正規表現がこの番号のみを受け入れるようにしています。この形式のみを許可する正規表現123-456-7890

123-456-7890 

私はこれを試しましたが、diff形式も受け入れています。

Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"); 
+2

'\ d {3} - \ d {3} - \ d {4}'に間違っていますか? – ndn

+0

.NETのように見えるので、 '\ d'は避けてください。 –

+0

@WiktorStribiżew、私は、.NETと '\ d'に問題があるかどうかわかりませんでした。あなたは共有できますか? – ndn

答えて

1

あなたはそれが、その後、その後、-文字列の位置の一番最後に続く3桁の数字、-、その後、4桁の数字を持って、3桁の数字で始まる文字列を受け付けます

Regex regexPhoneNumber = new Regex(@"\A[0-9]{3}-[0-9]{3}-[0-9]{4}\z"); 

を使用することができます。

詳細

  • \A - 文字列の先頭
  • [0-9]{3} - 3 ASCII数字
  • -
  • - ハイフン
  • [0-9]{3} - 3桁
  • - - 再びハイフン
  • [0-9]{4} - 4桁
  • \z - 文字列の最後($アンカーの場合のように、最後の改行が続くことはありません)。場合にはあなたがパターンを短くする代わりに[0-9]\dを使用して、まだASCII数字だけを一致、正規表現オブジェクトにRegexOptions.ECMAScriptオプションを渡したいという

注意。

関連する問題