Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preg_match验证电话号码格式_Php_Regex - Fatal编程技术网

Php 使用preg_match验证电话号码格式

Php 使用preg_match验证电话号码格式,php,regex,Php,Regex,我在制作一个验证电话号码是否为这种格式(xxx)xxx xxxx的函数时遇到问题 我的尝试是使用preg_match来确认数字是否为给定格式,但我对模式有问题 preg_match("/^([0-9]){3}[0-9]{3}-[0-9]{4}$/", $field) 我想我的问题是我不知道如何处理preg\u match中的括号。您需要转义括号:\(和\) 试试这个: $n = "(123)456-3890"; $p = "/\(\d{3}\)\d{3}-\d{4}/"; preg_matc

我在制作一个验证电话号码是否为这种格式(xxx)xxx xxxx的函数时遇到问题

我的尝试是使用preg_match来确认数字是否为给定格式,但我对模式有问题

preg_match("/^([0-9]){3}[0-9]{3}-[0-9]{4}$/", $field)

我想我的问题是我不知道如何处理preg\u match中的括号。

您需要转义括号:
\(
\)

试试这个:

$n = "(123)456-3890";
$p = "/\(\d{3}\)\d{3}-\d{4}/";

preg_match($p,$n,$m);

var_dump($m);

您需要转义括号:
\(
\)

试试这个:

$n = "(123)456-3890";
$p = "/\(\d{3}\)\d{3}-\d{4}/";

preg_match($p,$n,$m);

var_dump($m);

您需要转义括号:
\(
\)

试试这个:

$n = "(123)456-3890";
$p = "/\(\d{3}\)\d{3}-\d{4}/";

preg_match($p,$n,$m);

var_dump($m);

您需要转义括号:
\(
\)

试试这个:

$n = "(123)456-3890";
$p = "/\(\d{3}\)\d{3}-\d{4}/";

preg_match($p,$n,$m);

var_dump($m);

您可以通过此代码验证所有这些数字

<?php
$array = array(
'0 000 (000) 000-0000',
'000 (000) 000-0000',
'0-000-000-000-0000',
'000 (000) 000-0000',
'000-000-000-0000',
'000-00-0-000-0000',
'0000-00-0-000-0000',
'+000-000-000-0000',
'0 (000) 000-0000',
'+0-000-000-0000',
'0-000-000-0000',
'000-000-0000',
'(000) 000-0000',
'000-0000',
'+9981824139',
9981824139,
919981824139,
'+919981824139',
'qwqwqwqwqwqwqw'
);

foreach($array AS $no){    
            var_dump( ( preg_match( '/\d?(\s?|-?|\+?|\.?)((\(\d{1,4}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)\d{3}(-|\.|\s)\d{4}/', $no )
            ||
            preg_match('/([0-9]{8,13})/', str_replace(' ', '', $no))
            ||
            ( preg_match('/^\+?\d+$/', $no) && strlen($no) >= 8 && strlen($no) <= 13 ) )
          );
    }

//var_dump (preg_match('/([0-9]{8,12})/', '99818241') );
//var_dump( strlen(9981) );

//var_dump (preg_match('/^\+?\d+$/', '+12345678') );
//var_dump (preg_match('/^\+?\d+$/', '12345678') );

您可以通过此代码验证所有这些数字

<?php
$array = array(
'0 000 (000) 000-0000',
'000 (000) 000-0000',
'0-000-000-000-0000',
'000 (000) 000-0000',
'000-000-000-0000',
'000-00-0-000-0000',
'0000-00-0-000-0000',
'+000-000-000-0000',
'0 (000) 000-0000',
'+0-000-000-0000',
'0-000-000-0000',
'000-000-0000',
'(000) 000-0000',
'000-0000',
'+9981824139',
9981824139,
919981824139,
'+919981824139',
'qwqwqwqwqwqwqw'
);

foreach($array AS $no){    
            var_dump( ( preg_match( '/\d?(\s?|-?|\+?|\.?)((\(\d{1,4}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)\d{3}(-|\.|\s)\d{4}/', $no )
            ||
            preg_match('/([0-9]{8,13})/', str_replace(' ', '', $no))
            ||
            ( preg_match('/^\+?\d+$/', $no) && strlen($no) >= 8 && strlen($no) <= 13 ) )
          );
    }

//var_dump (preg_match('/([0-9]{8,12})/', '99818241') );
//var_dump( strlen(9981) );

//var_dump (preg_match('/^\+?\d+$/', '+12345678') );
//var_dump (preg_match('/^\+?\d+$/', '12345678') );

您可以通过此代码验证所有这些数字

<?php
$array = array(
'0 000 (000) 000-0000',
'000 (000) 000-0000',
'0-000-000-000-0000',
'000 (000) 000-0000',
'000-000-000-0000',
'000-00-0-000-0000',
'0000-00-0-000-0000',
'+000-000-000-0000',
'0 (000) 000-0000',
'+0-000-000-0000',
'0-000-000-0000',
'000-000-0000',
'(000) 000-0000',
'000-0000',
'+9981824139',
9981824139,
919981824139,
'+919981824139',
'qwqwqwqwqwqwqw'
);

foreach($array AS $no){    
            var_dump( ( preg_match( '/\d?(\s?|-?|\+?|\.?)((\(\d{1,4}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)\d{3}(-|\.|\s)\d{4}/', $no )
            ||
            preg_match('/([0-9]{8,13})/', str_replace(' ', '', $no))
            ||
            ( preg_match('/^\+?\d+$/', $no) && strlen($no) >= 8 && strlen($no) <= 13 ) )
          );
    }

//var_dump (preg_match('/([0-9]{8,12})/', '99818241') );
//var_dump( strlen(9981) );

//var_dump (preg_match('/^\+?\d+$/', '+12345678') );
//var_dump (preg_match('/^\+?\d+$/', '12345678') );

您可以通过此代码验证所有这些数字

<?php
$array = array(
'0 000 (000) 000-0000',
'000 (000) 000-0000',
'0-000-000-000-0000',
'000 (000) 000-0000',
'000-000-000-0000',
'000-00-0-000-0000',
'0000-00-0-000-0000',
'+000-000-000-0000',
'0 (000) 000-0000',
'+0-000-000-0000',
'0-000-000-0000',
'000-000-0000',
'(000) 000-0000',
'000-0000',
'+9981824139',
9981824139,
919981824139,
'+919981824139',
'qwqwqwqwqwqwqw'
);

foreach($array AS $no){    
            var_dump( ( preg_match( '/\d?(\s?|-?|\+?|\.?)((\(\d{1,4}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)((\(\d{1,3}\))|(\d{1,3})|\s?)(\s?|-?|\.?)\d{3}(-|\.|\s)\d{4}/', $no )
            ||
            preg_match('/([0-9]{8,13})/', str_replace(' ', '', $no))
            ||
            ( preg_match('/^\+?\d+$/', $no) && strlen($no) >= 8 && strlen($no) <= 13 ) )
          );
    }

//var_dump (preg_match('/([0-9]{8,12})/', '99818241') );
//var_dump( strlen(9981) );

//var_dump (preg_match('/^\+?\d+$/', '+12345678') );
//var_dump (preg_match('/^\+?\d+$/', '12345678') );

可能重复的可能重复的可能重复的可能重复的可能重复的感谢,我得到它的工作使用您的格式。不过我有个问题。我看到了一些例子,在模式的开头是“^”,结尾是“$”。这些是干什么的?分别是开始和结束。如果你正在验证一个输入,你可以使用iff,电话号码应该是唯一允许的。谢谢,我用你的格式得到了它。不过我有个问题。我看到了一些例子,在模式的开头是“^”,结尾是“$”。这些是干什么的?分别是开始和结束。如果你正在验证一个输入,你可以使用iff,电话号码应该是唯一允许的。谢谢,我用你的格式得到了它。不过我有个问题。我看到了一些例子,在模式的开头是“^”,结尾是“$”。这些是干什么的?分别是开始和结束。如果你正在验证一个输入,你可以使用iff,电话号码应该是唯一允许的。谢谢,我用你的格式得到了它。不过我有个问题。我看到了一些例子,在模式的开头是“^”,结尾是“$”。这些是干什么的?分别是开始和结束。如果您正在验证单个输入,您将使用iff,并且电话号码应该是唯一允许的。