我不想检查字符串($ nick_2)是否有“或ñ
这是对的吗?我不能让它发挥作用
if ( (strlen($nick_2) >= 3) && (strlen($nick_2) <= 25) && (!preg_match("/\"/", $nick_2)) && (!preg_match("/ñ/", strtolower($nick_2))) ) {
答案 0 :(得分:2)
为了找到单个字符,正则表达式是大量的过度杀伤力。只需使用
if ((strpos('"', $nick_2) !== FALSE) || (strpos('ñ', $nick_2) !== FALSE)) {
... chars were found
}
答案 1 :(得分:1)
你的字符串可能是UTF-8,在这种情况下,你必须使用u
中的preg_match
修饰符,并且还应该以UTF-8的形式将表达式提交给该函数。
如果是这种情况,您还需要做以下事情:
strtolower
和strlen
替换为mb_
替代方案。