我在CodeIgniter中使用表单验证库。下面的配置尝试包括所有数字,英文单词,中文单词和空格。但它不起作用。
$config = array(
array(
'field' => 'keywords',
'label' => 'keywords',
'rules' => 'regex_match[/[a-zA-Z0-9 \u4e00-\u9fa5]+$/]'
)
);
但是,如果我推断出它的工作,那就可以了。
$config = array(
array(
'field' => 'keywords',
'label' => 'keywords',
'rules' => 'regex_match[/[a-zA-Z0-9 ]+$/]'
)
);
答案 0 :(得分:1)
你有正则表达式有三个问题:
^
或\A
的开头。此外,建议将$
替换为字符串锚\z
的最末端(因为$
也匹配字符串中的最后换行符号之前)。\uXXXX
表示法。但是,您不必在此处指定Unicode代码点的范围。 PHP中的中文字符PCRE正则表达式can be defined with a Unicode property \p{Han}
。/u
修饰符。所以,使用
/\A[a-zA-Z0-9\s\p{Han}]+\z/u
或者(稍微不那么安全),
/^[a-zA-Z0-9\s\p{Han}]+$/u
答案 1 :(得分:0)
PCRE不支持\uFFFF
语法。请改用\x{FFFF}
。
/[a-zA-Z0-9 \x{4e00}-\x{9fa5}]+$/