PREG_MATCH a-z,A-Z,0-9 fullstop和forwardlash

时间:2018-01-22 11:38:34

标签: php html scripting preg-match

我需要验证一些数据并确认该模式仅包含a-zA-Z0-9full-stopforward slash

if(!preg_match("/^[a-zA-Z0-9 ./]*$/",$field)) {  
 $fielderror = "Field can only contain a-z A-Z 0-9 . /";
}

但是,它似乎允许其他特殊字符,例如:@ # and $

任何想法?以为我错过了一些非常明显的东西......

2 个答案:

答案 0 :(得分:1)

您必须只转义/,因为它用作分隔符(出现在模式的开头和结尾):

if(!preg_match("/^[a-zA-Z0-9 .\/]*$/",$field)) {  
 $fielderror = "Field can only contain a-z A-Z 0-9 . /";
}

有关正则表达式中使用的here的详细信息,请参阅delimiters

答案 1 :(得分:0)

您的代码有错误:

  

E_WARNING:类型2 - preg_match():未知修饰符']' - 第4行

$field = "123";
//$field = "@*";


if(!preg_match("/^[a-zA-Z0-9 \.\/]+g/",$field)) {  
echo "Field can only contain a-z A-Z 0-9 . /";
} else {
echo "its ok";
}

您可以使用此regex

^[a-zA-Z0-9\.\/]+