提问人:capt.swag 提问时间:5/30/2023 最后编辑:Michael M.capt.swag 更新时间:6/4/2023 访问量:86
新加坡手机号码正则表达式,中间有空格
Singapore mobile number regex with spaces in between
问:
我正在尝试制作一个与新加坡电话号码匹配的正则表达式。关键部分是数字之间可能有空格,也可能没有空格。
我的要求是:
- 该数字应以 开头。
+65
- 下一个数字应为 、 或 。
6
8
9
- 接下来的 7 个字符应为 to 之间的任意数字。
0
9
例如:+6581234567
我搜索了 Stack Overflow,发现了这个问题,它与上面完全相同。
现在就像我上面说的,中间可能有空格。而且我不确定如何做这些空间。所以可能的组合是这两个。
+6581234567
+65 8123 4567
答:
0赞
Sathiskumar S
5/30/2023
#1
以下正则表达式可以回答这个问题:
^(?:\+65\s?)?8[0-9]{7}$
您可以使用以下网页来匹配模式:https://pythex.org/
评论
2赞
markalex
5/30/2023
这不允许 ,只允许 8 作为区域代码。+65 8123 4567
0赞
capt.swag
5/30/2023
正确,不适用于我的用例。
4赞
markalex
5/30/2023
#2
^\+65(\s?)[689]\d{3}\1\d{4}$
这将允许在最后 4 位数字之后和之前使用任何空格符号。+65
^
以及字符串的开头和结尾,$
\+65
匹配文字“+65”,(\s?)
匹配可选的空格字符。被归入组 #1,匹配的内容稍后将作为 , 返回引用\1
[689]
匹配任一数字:6、8 或 9,\d{3}
并相应地匹配三位和四位数字,\d{4}
\1
与组 #1 中的相同内容匹配。
评论
+65 81234567
+658123 4567