Php 什么';验证字段的最佳正则表达式是什么?

Php 什么';验证字段的最佳正则表达式是什么?,php,regex,user-generated-content,Php,Regex,User Generated Content,我使用正则表达式在用户输入的字段上输入一个字符,以确保他们输入了1到20个字符 代码如下: $post_validations = array("title" => '/^[[:alnum:][:punct:][:space:]]{1,100}$/'); 但是,每当用户输入外来字符或MS Word中的特殊引号字符(我无法将其粘贴到此处,它会将其转换为普通引号!)时,正则表达式不会返回true,并显示错误 我想知道最好用什么正则表达式 谢谢如果您只想知道它在1到20个字符之间,为什么不使用

我使用正则表达式在用户输入的字段上输入一个字符,以确保他们输入了1到20个字符

代码如下:

$post_validations = array("title" => '/^[[:alnum:][:punct:][:space:]]{1,100}$/');
但是,每当用户输入外来字符或MS Word中的特殊引号字符(我无法将其粘贴到此处,它会将其转换为普通引号!)时,正则表达式不会返回true,并显示错误

我想知道最好用什么正则表达式


谢谢

如果您只想知道它在1到20个字符之间,为什么不使用

[编辑2]:

如果您还希望验证空格
,只需使用以下命令:

if(ctype_graph(str_replace(' ', '',$title))

如果您只想知道它在1到20个字符之间,为什么不使用呢

[编辑2]:

如果您还希望验证空格
,只需使用以下命令:

if(ctype_graph(str_replace(' ', '',$title))

您使用哪个函数计算表达式?PCRE还是POSIX?因为您使用的是POSIX字符类。无论如何,您应该切换到PCRE。错误是什么?您使用哪个函数来计算表达式?PCRE还是POSIX?因为您使用的是POSIX字符类。无论如何,您应该切换到PCRE。错误是什么?似乎OP想要允许空格,而
ctype\u-graph()不允许。似乎OP想要允许空格,而
ctype\u-graph()不允许。
if(ctype_graph(str_replace(' ', '',$title))