正则表达式以限制特定的用户输入

时间:2018-06-29 00:51:13

标签: javascript regex

我想限制用户以 Hello World 的形式输入数据。我想使用正则表达式,但是我不太擅长。

我的尝试是:^([A-Z]{1})([a-z]{1,})([ ])?([A-Z]{1})?([a-z]{1,})?$

对于以([])开头的组?应该是可选的...

例如,以下是有效条目:

你好你好世界人们人们谈话

以下无效:

people people talk People talk people talk hello

如先前示例所示,此REGEX必须区分大小写。

1 个答案:

答案 0 :(得分:3)

您应该将整个第二个单词作为一个单独的组,而不是将?放在每个部分之后。否则,单词之间的空格是可选的,因此您将允许两个单词之间没有空格,并且首字母大写是可选的,因此您将允许Hello world

^[A-Z][a-z]+(\s[A-Z][a-z]+)?$

由于模式默认匹配一次,因此不需要{1}+通常用于匹配1个或多个事物,而不是{1,}。并且\s可以匹配任何空白。

您需要使用^$锚定正则表达式,以便整个输入必须与之匹配。