正则表达式允许空格(对于电话号码正则表达式)

Jen*_*sen 6 php regex phone-number

我有这个正则表达式:

preg_match("#^([0-9]+)$#", $post['telephone'])
Run Code Online (Sandbox Code Playgroud)

谁只允许数字(对于法语类型的电话号码,因此 0123456789),但我想允许空格。例如允许这种类型的字符串:“01 23 45 67 89”。

你能帮我么?

Eri*_*oen 7

例如,如果您想要正好有 8 位数字,但仍然允许任意数量的空白字符,那么以下内容很棒:

^(?:\s*\d){8}$

或者,如果您也想允许破折号:

^(?:\s*-*\s*\d){8}$


ste*_*ema 4

如果字符串中的任何位置都可以有空格,那么很简单,只需将其添加到字符类中即可

preg_match("#^([0-9 ]+)$#", $post['telephone'])
Run Code Online (Sandbox Code Playgroud)

但这将在开头留出 5 个空格。

^\d{2}(?: ?\d+)*$
Run Code Online (Sandbox Code Playgroud)

会更复杂一点。以两位数字开头,然后是一个可选组,以可选空格开头,后跟至少 1 位数字。该组可以重复 0 次或多次。

这将匹配

01 23 45 67 89

0123456789

01234 5679