我发现很多地方都可以解决此类问题,但我不知道为什么它对我不起作用。
$reg = '/^[a-zA-Z0-9,. ]*$/'; // regex to allow only alphanumeric, comma, period and space
$count = preg_match($reg, $arr[1], $matches); // verify regex
if($count > 0){
$objArray[] = array($arr[0] => $arr[1]); // if regex allowed create Object array
}
else{
//error code
}
字母数字可以正常工作,但在允许使用句点的情况下不允许使用逗号和空格。
你确定这个问题是不是^
,*
和$
在结束了吗?您的字符类是正确的,但您要匹配的是“行的开头,然后是0或更多[a-zA-Z0-9,. ]
,然后是行的末尾”。
这意味着如果字符串中没有任何字符(0个或多个字符),它将匹配,但字符串中没有其他字符(因为它固定在行的开头和结尾)则不匹配。如果这是真的,你想知道的(如果不是那些字符以外的任何其他)的东西,那么你就可以扭转的字符类就是这样,并删除^
,*
和$
:[^a-zA-Z0-9,. ]
。
否则(如果您想知道字符串中是否包含那些字符),则应删除字符类之外的所有内容:'/[a-zA-Z0-9,. ]/'
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句