我需要一点帮助我想检查输入是否与掩码匹配
掩码是这样的:12.345.678/9012-34 (xx.xxx.xxx/xxxx-xx)
到目前为止我尝试过的是这个
$string = '12.345.678/9012-34';
if(!preg_match('/^[0-9]{2}.[0-9]{3}.[0-9]{3}/[0-9]{4}-[0-9]{2}$/', $string)) {
echo 'Doesnt match the mask!';
}
它没有成功。谢谢你的帮助。
我需要一点帮助我想检查输入是否与掩码匹配
掩码是这样的:12.345.678/9012-34 (xx.xxx.xxx/xxxx-xx)
到目前为止我尝试过的是这个
$string = '12.345.678/9012-34';
if(!preg_match('/^[0-9]{2}.[0-9]{3}.[0-9]{3}/[0-9]{4}-[0-9]{2}$/', $string)) {
echo 'Doesnt match the mask!';
}
它没有成功。谢谢你的帮助。
您需要转义要匹配的/and.文字,因为您使用前者作为正则表达式分隔符,并且在正则表达式中.具有特殊含义(通常匹配除 之外的所有字符\n)。
if(!preg_match('/^\d{2}.\d{3}\.\d{3}\/\d{4}-\d{2}$/', $string)) {
echo 'Doesnt match the mask!';
}
我也使用了,\d而不是[0-9]因为它不太容易阅读和理解,它们的意思是一样的。
这是我将如何改变它:
/^[0-9]{2}.[0-9]{3}.[0-9]{3}/[0-9]{4}-[0-9]{2}$/
1)您可以使用\d数字的快捷方式:
/^\d{2}.\d{3}.\d{3}/\d{4}-\d{2}$/
2)点(句号)是一个特殊字符,可以匹配任何字符,所以需要转义。
/^\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}$/
3)正斜杠是你的分隔符,所以应该在里面转义;或者,使用不同的分隔符:
/^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/
#^\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}$#