手机号码和电话号码的正则表达式
Regular expression for mobilenumber and phonenumber
提供数据:
050359554 和 0478770213
我正在寻找一个正则表达式来检查数字是否以 04 开头。
如果它以 04 开头,那么它后面应该跟一个 6、7、8 或 9 和 7 数字。
否则,如果它仅以 0 开头而没有 4,则应后跟 8 位数字。
我当前的正则表达式就像
/^(04[6789]\d{7})$|^(0\d{8})$/
这个问题是当我输入数字 0478770213 时它已经说输入 047877021 没问题。但事实并非如此。
您提供的正则表达式中有一个开关组,第一个是 10 位数字 phone,第二个是 9 位数字。
在你的期望中你说:
Otherwise if it starts with only a 0 and no 4 it should be followed by 8 digits.
但是在你的正则表达式中你没有翻译 "and no 4"
你的正则表达式应该是:
/^(04[6789]\d{7})$|^(0[0-35-9]\d{7})$/
但是有些事情让我感到不安,9位数字和10位数字phone是合法的吗?
我发誓这是一个错误,所以我建议你:
/^(04[6789]\d{7})$|^(0[0-35-9]\d{8})$/
您可以使用负前瞻:
/^(04[6789]\d{7})$|^(0(?!4)\d{8})$/
这将匹配 0
后跟 4,后跟 8 位数字。
前瞻的有趣之处在于它不会移动搜索光标:
0123456789
^ Cursor is here
^ Lookahead on this character
^ Cursor is still here
您可以使用这个正则表达式:
^0(?:4[6789]\d{7}|(?!4)\d{8})$
提供数据: 050359554 和 0478770213
我正在寻找一个正则表达式来检查数字是否以 04 开头。 如果它以 04 开头,那么它后面应该跟一个 6、7、8 或 9 和 7 数字。 否则,如果它仅以 0 开头而没有 4,则应后跟 8 位数字。
我当前的正则表达式就像
/^(04[6789]\d{7})$|^(0\d{8})$/
这个问题是当我输入数字 0478770213 时它已经说输入 047877021 没问题。但事实并非如此。
您提供的正则表达式中有一个开关组,第一个是 10 位数字 phone,第二个是 9 位数字。
在你的期望中你说:
Otherwise if it starts with only a 0 and no 4 it should be followed by 8 digits.
但是在你的正则表达式中你没有翻译 "and no 4"
你的正则表达式应该是:
/^(04[6789]\d{7})$|^(0[0-35-9]\d{7})$/
但是有些事情让我感到不安,9位数字和10位数字phone是合法的吗? 我发誓这是一个错误,所以我建议你:
/^(04[6789]\d{7})$|^(0[0-35-9]\d{8})$/
您可以使用负前瞻:
/^(04[6789]\d{7})$|^(0(?!4)\d{8})$/
这将匹配 0
后跟 4,后跟 8 位数字。
前瞻的有趣之处在于它不会移动搜索光标:
0123456789
^ Cursor is here
^ Lookahead on this character
^ Cursor is still here
您可以使用这个正则表达式:
^0(?:4[6789]\d{7}|(?!4)\d{8})$