我正在对我的输入字段进行简单的检查。我有 3 个地方验证用户输入:javascript 正则表达式、html 模式和 php 正则表达式。Javascript 和 PHP 部分工作正常,但我的 HTML 模式以某种方式为除空白之外的每个输入返回错误。我在 regexpal.com(正则表达式测试器)上对其进行了测试,它在那里工作得非常好,所以我认为我一定做错了什么。
这是我的正则表达式:
/^[a-zA-Z0-9\!\?\,\.\s]{0,50}$/
我试图允许用户输入以下内容:
- 字母字符,包括大写字母
- 数字字符
- 标点符号:感叹号(!)、问号(?)、逗号(,) 和点(.)
- 空间
这是我实现它的方法:
<input type="text" id="name" name="name" aria-required="true" pattern="/^[a-zA-Z0-9\!\?\,\.\s]{0,50}$/" value="loaded value from db">
请注意:我允许输入 0 个字符,因为我将使用 PHP 进行检查,如果输入字段为空,则会将预设值写入数据库。
基本上它应该允许用户输入一般的单词或句子,但不知何故它不允许任何东西。我没有得到“错误”的唯一方法是当我将输入字段留空时。我究竟做错了什么?我的正则表达式错了吗?我没有正确实施它吗?如有必要,我可以提供更多代码。
非常感谢您的帮助!
提前致谢。