2011-10-04 73 views
2

任何地方破折号我有这样的正则表达式:正则表达式 - 允许里面的电话号码

^(1?)(-| ?)(\()?([0-9]{3})(\)|-| |\)-|\))?([0-9]{3})(-|)?([0-9]{4}|[0-9]{4})$ 

我想允许破折号(“ - ”)在字符串中的任何位置。 做什么是最好的方法?

来源: http://www.regxlib.com/REDetails.aspx?regexp_id=1497

+0

你可以发布一些有效的和稍微无效的例子你RE匹配?这肯定会有助于继续。 –

+0

电话号码有多少位数?你打算使用正则表达式进行验证还是用于其他事情? – marto

+0

我正在验证美国的电话号码。电话号码是10位数字 – Gady

回答

2

我想说的最好要换零件像

[0-9]{3} 

(?:[0-9]-?){3} 

这意味着有3个号码,每个可以跟随一个短划线。如果您想在其中允许多个破折号,请将?更改为*。通过改变[0-9][0-9-]

2

你可以简单地把“”。

  1. 去掉所有不是数字或破折号的东西。
  2. 将已剥离的字符串复制到临时变量。
  3. 去掉破折号。
  4. 确保您剩余10位数字。
  5. 如果是这样,请使用temp var作为您的值。
1

不要理会正则表达式作为数字 -