新加坡手机号码正则表达式,中间有空格

Singapore mobile number regex with spaces in between

提问人:capt.swag 提问时间:5/30/2023 最后编辑:Michael M.capt.swag 更新时间:6/4/2023 访问量:86

问:

我正在尝试制作一个与新加坡电话号码匹配的正则表达式。关键部分是数字之间可能有空格,也可能没有空格。

我的要求是:

  1. 该数字应以 开头。+65
  2. 下一个数字应为 、 或 。689
  3. 接下来的 7 个字符应为 to 之间的任意数字。09

例如:+6581234567

我搜索了 Stack Overflow,发现了这个问题,它与上面完全相同。

现在就像我上面说的,中间可能有空格。而且我不确定如何做这些空间。所以可能的组合是这两个。

  1. +6581234567
  2. +65 8123 4567
Regex 电话号码

评论

3赞 Poul Bak 5/30/2023
空格可以是任何地方,还是只有您示例中的 2?
2赞 markalex 5/30/2023
另外,可以接受吗?+65 81234567+658123 4567
0赞 capt.swag 5/30/2023
没有@PoulBak。唯一允许的数字组合是我上面发布的数字组合。
1赞 Michael M. 6/4/2023
这个问题非常清楚,不应该因为“需要细节或清晰度”而结束。

答:

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 中的相同内容匹配。

演示在这里