PREG_MATCH a-z、A-Z、0-9 句号和正斜线

PREG_MATCH a-z, A-Z, 0-9 fullstop and forwardslash

我需要验证一些数据并确认模式仅包含 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 $

有什么想法吗?以为我错过了一些非常明显的东西....

您的代码有错误:

E_WARNING : type 2 -- preg_match(): Unknown modifier ']' -- at line 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\.\/]+

您只能对 / 进行转义,因为它用作定界符(出现在模式的开头和结尾):

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

请参阅正则表达式中使用的 here for more information about delimiters