用于HTML5输入验证的Javascript正则表达式语法

时间:2011-06-13 10:08:28

标签: javascript regex html5

所以有很多问题,并通过一些过滤,我仍然不知道如何去做...

模式:

  • 仅限字母,不区分大小写,对字符数或字数没有限制,最少3个字符......

我有

pattern="[A-z]{3,}"

这给了我一切,除了我只限于一个词......: - (

编辑:让我更清楚一点,我希望验证能为我实现......

我用它来捕捉一个人的名字。但是我不想要任何特殊的字符或数字,所以没有“John Doe Jr.”,因为'。'将被拒绝,但我希望能够捕获双重甚至单个字符部分,同时保持“全局”3字符最小限制......

3 个答案:

答案 0 :(得分:3)

为了允许空格,您所要做的就是为您拥有[A-z]的角色模式添加空格。

所以它变成了:

pattern="[A-z ]{3,}"

希望有所帮助。

但请注意,这将阻止其他类型的空格字符。我认为这是你想要的,因为你对字符集的其余部分有很大的限制,但值得指出的是,上面会阻止不间断的空格,回车和其他空格。如果您想允许它们,请使用\s而不是空格:这将匹配任何空格字符。

最后,值得指出的是,即使是纯英文文本,标准字母表也常常不够用。有效的英语单词带有重音符号,以及撇号和其他标点符号。你没有说明该字段的用途,所以我认为这不是问题,但我觉得值得指出。

答案 1 :(得分:2)

很难看出问题是什么。您正在匹配字符串,而不是一组单词。 如果你的模式是“一个单词列表,每个单词只按字母顺序排列并用空格分隔”,那么正则表达式将是

([A-Za-z]{3,}\\s*)+

编辑回答更新的问题。

[A-Za-z\\s]*([A-Za-z]{3,})+[A-Za-z\\s]* (works in Java)

答案 2 :(得分:1)

pattern = "[A-z\s]{3,}"怎么样?