我想检查服务器端用户的输入是否正确。如果用户输入数字和字符,例如:1234567891是我的参考号12,而1234567899是我的参考号2。
我将只允许使用逗号分隔10位数字的Nunber,所有其他不需要的字符和空格应删除输出:1234567891,1234567899应该存储为变量
我已经使用过pregmatch 我有这段代码,但只删除了空格和字符
$var= preg_replace("/[^0-9]+/", "", $var);
答案 0 :(得分:1)
使用preg_match_all
,其模式为\b[0-9]{10}\b
:
$input = "1234567891 IS my REFER NUMBER 12 an 1234567899 IS REFER 2 and 123456789 and 12345678901";
preg_match_all('/\b[0-9]{10}\b/', $input, $matches);
print_r($matches[0]);
Array
(
[0] => 1234567891
[1] => 1234567899
)
请注意,我的样本输入中同时显示10位数字和非10位数字,并且输出中仅显示前者。
编辑:
如果您希望在单个字符串中包含所有匹配的数组编号,则可以尝试使用join
,例如
$output = join('\n', $matches[0]);
echo $output;
1234567891
1234567899