这种模式将起作用:
~^(\(\d+\)|\d+\-)?\d{10,20}$~
这是测试脚本:
<?php
$pattern = ''; // the regexp
$input = ''; // the phone number
$valid = preg_match($pattern, $input) ? 'valid' : 'INVALID';
echo 'The number is ' . $valid; // it prints out valid if phone number accepts prints out INVALID if phone number rejects
?>
我的模式:
~^(\(\d+\)|\d+\-)?\d{10,20}$~
嗯...让我们测试一下!
$pattern = '~^(\(\d+\)|\d+\-)?\d{10,20}$~';
$input = '(083)0123456789';
输出:The number is valid
下一个号码...
$input = '0123456789';
输出:The number is valid
下一个:
$input = '083-0123456789';
输出:The number is valid
让我们测试一个INVALID号码以确保它正常工作
$input = '083+0123456789';
输出:The number is INVALID
下一步:删除前缀
代码:
echo preg_replace('~(\(\d+\)|\d+\-)~', '', $input);
// input:(083)0123456789 , output: 0123456789
// input: 0123456789, output: 0123456789
// input: 083-0123456789, output: 0123456789
完成的!