regex 瑞典电话号码正则表达式

wsxa1bj1  于 2023-08-08  发布在  其他
关注(0)|答案(7)|浏览(143)

你好,我使用以下正则表达式验证瑞典号码

^(([+]46)((70[{0-9}])|(72[{0-9})])|(73[{0-9}])|(76[{0-9}]))([\d]{6}))$

字符串
我希望我的电话号码为以下格式+46 70 5689 123或+46705689123
请帮助我做这件事。

qyuhtwio

qyuhtwio1#

正则表达式中缺少空格(\s*):

^([+]46)\s*(7[0236])\s*(\d{4})\s*(\d{3})$

字符串

说明


的数据

Demo

https://www.debuggex.com/r/vG3FFsIeqa82QQRS

讨论

我已经用更可读的东西替换了像70[{0-9}]这样的部分:7[0236]的值。

7fhtutme

7fhtutme2#

为什么有这么多括号?

^\+46 *7[0236] *\d{4} *\d{3}$

字符串
应该做。

piztneat

piztneat3#

为了有一个完整的答案,我将在这个线程添加。Manoj,你在评论中写道,你也想允许从0开始的数字,斯蒂芬的答案(尽管很好)没有涵盖。
你想用

^(([+]46)\s*(7)|07)[02369]\s*(\d{4})\s*(\d{3})$

字符串
允许:

  • +46 7
  • +467
  • 07

后跟0/2/3/6/9,(可能的空格),4位数字,(可能的空格),3位数字
x1c 0d1x的数据
Debuggex Demo

h5qlskok

h5qlskok4#

我用这样的东西。可能会做得更整洁,但它可以处理:

  • 数字可以以+46或07或01开头。
  • 可能包括-如0736-XXXXXX或070-XXXXXXX
  • 白色也可以出现在任何地方(至少在我的例子中,因为我们过去没有真正简化输入)。

^([+]46)\s*((1| 7)[0236]))|(0(1| 7)[0236]))\s*(([-]|())\s*[0 - 9]\s [0 - 9]\s [0-9]\s[0 - 9]\s[0 -9]\s [0 - 9]\s [0 - 9]\s|([0-9]\s([-]|()\s*[0 -9]\s*[0 - 9]\s*[0 - 9]\s *[0 - 9]\s *[0 - 9]\s [0 - 9]\s)$

8wigbo56

8wigbo565#

第一个月
将与0046 708 777 666合作
try it out

68bkxrlz

68bkxrlz6#

/^07(0| 2| 3| 6| 9)\d{7}$/g
这将适用于以以下首字母开头的本地号码:070、072、073、076、079移动的电话网络示例:076 xxxxxxx x将是数字

mcvgt66p

mcvgt66p7#

我会写这篇文章,因为主题是“瑞典电话号码”,而不是“瑞典手机号码”。尽管这可能不是QS要求的。
瑞典的固定电话号码可能在前缀后有任何数字,根据数字的长度有很多不同的空格设置,有时它们也用连字符写。

Length 0+9 numbers
08-xxx xxx xx
0xx-xxx xx xx
0xxx-xx xx xx

Length 0+8 numbers
08-xxx xx xx
0xx-xx xx xx
0xxx-xxx xx

Length 0+7 numbers
08-xx xx xx
0xx-xxx xx

Length 0+9 numbers (Mobile)
07x-xxx xx xx

字符串
前缀+46或00也可以应用于这些号码。同时添加QS要求的符号:

+46 70 5689 123
+46705689123
+46 85 68 91 23


这使得在编写regexp时跟踪所有这些空格变得非常麻烦。这就是为什么我的建议是修剪/删除所有的空格和/或连字符,然后运行这个正则表达式:

^(([+]46)|(0)|(00))(\d{7,9})$


在我看来,你最好规范你在数据库中输入数字的方式,不要添加不必要的空格,以避免污染数据。
来源:
https://sv.wikipedia.org/wiki/Telefonnummer
https://sv.wikipedia.org/wiki/Lista_%C3%B6ver_svenska_riktnummer

相关问题