我想限制用户以Hello World的形式输入数据...我想使用正则表达式,但我不擅长。
我的尝试是:^([A-Z]{1})([a-z]{1,})([ ])?([A-Z]{1})?([a-z]{1,} )?$
对于从 ([ ]) 开始的组?应该是可选的...
例如,以下是有效条目:
Hello、Hello World、People、People Talk
以下是无效的:
people, people Talk, People talk, people talk, heLlo
这个 REGEX
必须区分大小写,如前面的示例所暗示的那样。
最佳答案
您应该将整个第二个单词作为一个单独的组作为可选,而不是在它的每个部分之后放置 ?
。否则,单词之间的空格是可选的,因此您将允许两个单词之间没有空格,并且首字母大写字母是可选的,因此您将允许 Hello world
。
^[A-Z][a-z]+(\s[A-Z][a-z]+)?$
不需要 {1}
,因为模式默认匹配一次。 +
通常用于匹配 1 个或多个内容,而不是 {1,}
。 \s
匹配任何类型的空格。
并且您需要使用 ^
和 $
来锚定正则表达式,以便整个输入都必须匹配它。
关于javascript - 限制特定用户输入的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092892/