1

我正在对我的输入字段进行简单的检查。我有 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 进行检查,如果输入字段为空,则会将预设值写入数据库。

基本上它应该允许用户输入一般的单词或句子,但不知何故它不允许任何东西。我没有得到“错误”的唯一方法是当我将输入字段留空时。我究竟做错了什么?我的正则表达式错了吗?我没有正确实施它吗?如有必要,我可以提供更多代码。

非常感谢您的帮助!

提前致谢。

4

1 回答 1

2

尝试从输入的模式属性中删除正斜杠 (/)。

于 2013-04-15T13:56:31.677 回答