【发布时间】:2016-04-20 07:10:26
【问题描述】:
实际上我在内部应用程序中使用它生成一个xml,其代码是用java编写的。但是在应用程序中,如果 ^(249)?1\d{8}$ 则转发到下一个操作,如果数字不高于则给用户错误输入,即我没有直接与 java 代码交互我想要一个用于手机号码验证的正则表达式。正则表达式模式应该是这样的,它必须接受 249 个国家代码(仅一次)后跟“1”(仅一次)后跟 8 位数字。国家代码应该是可选的。如果国家代码不存在,它应该只接受以 1 开头的 9 位数字。
还有否定上述条件的正则表达式,表示任何不以 249 开头且长度为 12 的手机号码,如果它的长度为 9 且不以 1 开头。 正则表达式应该接受像
这样的数字249189372837 start with 249 followed by 1 and must of 12 digit length
249123476358
183526352 if start with 1 and must of 9 digit length (249 optional)
不应该接受
2431983645238 country code not 249
24924356383799 more then 12 digit including country code
249212236472 not 1 after 249
1232345678 more length then 9
12345323 less length then 9
456278399 if 249 is not there then mut start with 1 with length of 9
所以我需要正则表达式来接受上述条件和一个正则表达式来接受除上述接受条件之外的任何数字。
我尝试了 ^(249)([1]{1})([0-9]{8})$,当以 249 开头,然后 (1) 然后是 8 位数字和 ^(1)([0-9]{8})$,当数字以 1 后跟 8 位数字开头时,但我需要一个正则表达式来处理这两种情况。
实际上我在内部应用程序中使用它生成一个xml,其代码是用java编写的。但是在应用程序中 if ^(249)?1\d{8}$ (由@rock321987 回答)然后它转发到下一个操作,如果数字不高于正则表达式则给用户错误输入,即我没有直接与java代码交互
非常感谢您的任何帮助和建议。
【问题讨论】:
-
你试过什么?在寻求帮助之前,您应该先尝试一下,然后解决您在试验中遇到的问题
-
@Darken 感谢您的及时回复,直到现在我尝试了 ^(249)([1]{1})([0-9]{8})$ 以 249 开头然后 (1 ) 然后是 8 位数字和 ^(1)([0-9]{8})$ 当数字以 1 开头后跟 8 位数字时,但我需要一个正则表达式来处理这两个条件