我想要一个用于手机号码验证的正则表达式。regex模式必须只在开头接受,空格(或
-
)只能在国家代码之后(仅一次)。国家代码后只允许有10位数字。国家代码应该是可选的。如果国家代码不存在,它应该只接受10位数字。Regex应该防止任何无效的数字,比如(91 0000000000
或0000000000
)。
正则表达式应该接受这样的数字
正则表达式不应该接受这样的数字
试试这个正则表达式:
^(\+?\d{1,4}[\s-])?(?!0+\s+,?$)\d{10}\s*,?$
使用Perl的YAPE对正则表达式的解释如下:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
^ the beginning of the string
----------------------------------------------------------------------
( group and capture to \1 (optional
(matching the most amount possible)):
----------------------------------------------------------------------
\+? '+' (optional (matching the most amount
possible))
----------------------------------------------------------------------
\d{1,4} digits (0-9) (between 1 and 4 times
(matching the most amount possible))
----------------------------------------------------------------------
[\s-] any character of: whitespace (\n, \r,
\t, \f, and " "), '-'
----------------------------------------------------------------------
)? end of \1 (NOTE: because you are using a
quantifier on this capture, only the LAST
repetition of the captured pattern will be
stored in \1)
----------------------------------------------------------------------
(?! look ahead to see if there is not:
----------------------------------------------------------------------
0+ '0' (1 or more times (matching the most
amount possible))
----------------------------------------------------------------------
\s+ whitespace (\n, \r, \t, \f, and " ") (1
or more times (matching the most amount
possible))
----------------------------------------------------------------------
,? ',' (optional (matching the most amount
possible))
----------------------------------------------------------------------
$ before an optional \n, and the end of
the string
----------------------------------------------------------------------
) end of look-ahead
----------------------------------------------------------------------
\d{10} digits (0-9) (10 times)
----------------------------------------------------------------------
\s* whitespace (\n, \r, \t, \f, and " ") (0 or
more times (matching the most amount
possible))
----------------------------------------------------------------------
,? ',' (optional (matching the most amount
possible))
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
这个正则表达式是非常短和甜蜜的工作。
Ex:910123456789或0123456789-
这就是移动号码的正则表达式的工作原理。
符号用于世界范围的号码匹配。
如果您想添加之间的空格,可以使用
在这里,方括号代表字符序列,空格是用于在正则表达式中搜索的字符
对于空格分隔的数字,可以使用此正则表达式
Ex:91 0123456789
如果有任何问题,请提问。
如果你使用下面的技巧,就可以满足你的所有要求
^
行的开头
后接\d
后接A
或-
,这是可选的
0
s不跟随
\d
10次
DEMO在DEMO中添加了m
ultiline标志,以检查所有情况
P. S.你真的需要指定你使用的语言,以便使用一个if
条件,如下所示:
// true if above regex is satisfied and (&&) it does not (`!`) match `0`s `5` or more times
if(number.match(/^(\+\d{1,3}[- ]?)?\d{10}$/) && ! (number.match(/0{5,}/)) )
我发现下面的regex可以验证多个电子邮件地址(逗号分隔)
问题内容: 我正在创建用于密码验证的正则表达式,以在Java应用程序中用作配置参数。 regexp是: 密码策略为: 至少8个字符 包含至少一位数字 包含至少一个较低的alpha字符和一个较高的alpha字符 在一组特殊字符(@#%$^等)中包含至少一个字符 不包含空格,制表符等。 我只缺少第5点。我无法进行正则表达式检查空间,制表符,回车等。 有人可以帮我吗? 问题答案: 尝试这个: 说明: 由
我是HTML,有谁能帮我验证一个电话号码只有'+'和数字值和电话号码不超过13个数字,并验证电子邮件与'@'和‘。我不想使用javascript
我想弄清楚这个验证手机号码到我的Android系统是如何工作的。 我已经添加了代码和whant来验证46123456789,但最后一个号码(9)没有添加到电话号码中。 我用的是: 我是不是错过了什么
问候覆花, 我试图编写一个正则表达式来验证形式为#########(10位)的电话号码,也就是说,这是有效的情况:1231231234或1111111。无效大小写是指小于10位或大于10位的数字串。 到目前为止,我使用的表达式是:“\d{10}” 不幸的是,它不能正确验证字符串是否为11位数。 有人知道实现这个任务的表达式吗?
问题内容: 我在某些网站上找到了此代码,并且效果很好。它验证电话号码是以下格式之一: (123)456-7890 或 123-456-7890 问题是我的客户(我不知道为什么,也许是客户的东西)想添加另一种格式,即连续十个数字,如下所示: 1234567890 。 我正在使用这个正则表达式, 如何添加它还可以验证另一种格式?我对正则表达式不好。 问题答案: 首先,您的格式验证器显然仅适用于NANP