我不知道为什么它允许输入多个破折号,现在已经存在多年了。
if (empty($_POST['Tel'])||strlen(trim($_POST['Tel']))==0)
{$TelErr="<br>*Missing tel<br>";}
else if (strlen($_POST['Tel'])<11)
{$TelErr="<br>*Tel Number too short<br>";}
else if (strlen($_POST['Tel'])>12)
{$TelErr="<br>*Tel Number too long<br>";}
else if (preg_match("/^[0-9+]$/", $_POST['Tel']))
{$TelErr="<br>*Please use numbers only<br>";}
答案 0 :(得分:0)
您可以尝试这样的事情:
preg_match("/^(\d+-?)+\d+$/", $_POST['Tel'])
使用'?'匹配最近的短划线。
这是一个例子:
1 <?php
2 $texts = array('123-456', '123--456', '-----------');
3 foreach ($texts as $text) {
4 if (preg_match("/^(\d+-?)+\d+$/", $text, $match)){
5 echo "$text is valid\n";
6 } else {
7 echo "$text is not valid\n";
8 }
9 }
10 ?>
输出:
123-456 is valid
123--456 is not valid
----------- is not valid