Regex 内部带有可选符号的正则表达式

Regex 内部带有可选符号的正则表达式,regex,Regex,我需要确认电话号码。如果是的话,也可以是这样 Have + sign at start +79231112233 Dont have + at start 79231112233 Have spaces 7 9231112233 7 923 1112233 7 923 111 22 33 Have dashes/spaces 7-923-111-22-33 7 923-111-22-33 7 923 111-22-33 Mixed +7-923-111 22 33 可以使用正则表达式吗?可以。

我需要确认电话号码。如果是的话,也可以是这样

Have + sign at start
+79231112233
Dont have + at start
79231112233
Have spaces
7 9231112233
7 923 1112233
7 923 111 22 33
Have dashes/spaces
7-923-111-22-33
7 923-111-22-33
7 923 111-22-33
Mixed
+7-923-111 22 33

可以使用正则表达式吗?

可以。最简单、最划算、但几乎不完美的正则表达式是这样的:

^\+?[0-9- ]+$

缺点是它可以接受所有的破折号或空格。

是。最简单、最划算、但几乎不完美的正则表达式是这样的:

^\+?[0-9- ]+$

缺点是它会接受所有的破折号或空格。

\+
与文本匹配+

\+?
添加“?”使其成为可选选项,当“+”不出现或只出现一次时匹配

[-]
匹配一个空格或“-”字符。您可以在末尾添加一个问号,使其成为可选的(如上所述)

\d
匹配一位数字(可以写为[0-9])

\d{3}
正好匹配三位数字


这应该是足够的信息,您可以构建一个适用于您的目的的正则表达式。不过,您应该了解有关正则表达式的更多信息,以便了解其缺点。

\+
与文本匹配+

\+?
添加“?”使其成为可选选项,当“+”不出现或只出现一次时匹配

[-]
匹配一个空格或“-”字符。您可以在末尾添加一个问号,使其成为可选的(如上所述)

\d
匹配一位数字(可以写为[0-9])

\d{3}
正好匹配三位数字


这应该是足够的信息,您可以构建一个适用于您的目的的正则表达式。不过,您应该了解更多有关正则表达式的知识,以便了解其缺点。

除了在开始时匹配可选的
+
,并在数字之间留出空格/连字符外,根据您给出的示例,电话号码必须至少有#个数字,例如
10

您可以考虑此正则表达式以满足上述条件:

\+?(?:\d[ -]?){10,}
  • (?:\d[-]?){10,}
    强制执行10或数字,可选择后跟空格或连字符

除了在开始时匹配可选的
+
,并允许数字之间留有空格/连字符外,根据您给出的示例,电话号码必须至少有#个数字,例如
10

您可以考虑此正则表达式以满足上述条件:

\+?(?:\d[ -]?){10,}
  • (?:\d[-]?){10,}
    强制执行10或数字,可选择后跟空格或连字符

您的问题似乎希望有人为您编写正则表达式。您的问题似乎希望有人为您编写正则表达式。在在线测试仪中进行了尝试,但加号验证似乎存在一些问题:(不进行加号验证,效果很好-^[0-9-]+$@AlexeyK您需要用反斜杠将加号从正则表达式中转义为量词。答案最初没有显示反斜杠(没有代码块)。此外,您可以添加一个单词边界以要求至少一个数字:但这将匹配仅包含
-
或空格的行。感谢修复bobble bubble,我确信我已输入\。在在线测试仪中尝试了它,似乎加号验证存在一些问题:(不进行加号验证,这非常有效-^[0-9-]+$@AlexeyK您需要用反斜杠将加号从正则表达式中转义为量词。答案最初没有显示反斜杠(没有代码块)。此外,您可以添加一个单词边界以要求至少一个数字:但这将匹配仅包含
-
或空格的行。感谢修复bobble bubble,我确信我已输入\。