我需要使用国际代码处理电话号码,但我不需要将手机作为特定格式。我已经找到了很多关于如何将它应用于美国,西班牙等的示例...但是没有一个只允许输入带有00或+的数字,允许空格和/或破折号或没有空格或破折号。
我在asp.net MVC 5应用程序的电话号码字段中应用了以下表达式:
[RegularExpression(@"^\+?\d*$", ErrorMessage = "Not a valid Telephone number.")]
目前,它处理以下情况:
+19999999999
0019999999999
这很好但是它不允许空格和/或破折号这样的数字如下:
+ 1 999 999 99 99
+32 999-999-99-99
+7 999 999-99-99
不被视为有效。
如何允许包含空格和/或破折号。更具体地说,是否可以确保:
如果1.太复杂了,你能告诉我如何在没有任何特定规则的情况下允许空格和/或短划线,所以这样的数字:-33-999 999 + 99-99,而完全错误将会仍然有效。
由于
答案 0 :(得分:1)
以上regx
\ s用于检查任何空格
(\ S)?意味着可能有空格或者可能没有
用于验证长度,您可以使用{rang start,rang end}替换* 例如{10,20}
\ d {3}表示只接受该地点的3位数
=============================================== =========================
您可以使用此网站进行测试http://regexr.com/
有关更多信息,请参阅此图像
Regx Tested
休息是由你决定的。你可以在学习之后建立自己需要的regx,你应该在上面提到的网站上查看正则表达式备忘单。它会有很大的帮助。
答案 1 :(得分:1)
根据@ mlkptl35的建议,这是我在[在此处输入链接描述] [regexr]中尝试使我的RegEx工作的最接近的工作
^([+]|[00]{2})([0-9]|[ -])*
它将允许字符串:
以国际部分的+或00开头,后跟最多3位
允许任何数字,空格或 - 之后
通过上述RegEx,我能够处理以下数字:
+32999999
+1-99-999-99-99
+33 99-999-99-99
+7 999999999
+44 999999999
+353 99-9999999
+1 99-999-9999
0044999999999
00353 99-999 9999
等等。
我确信它远非完美,但我只是在学习,所以请向所有“RegEx”专家提前道歉。
如果我有时间改进它,我会提供更新。