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

标签 javascript regex

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

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

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

例如,以下是有效条目:

HelloHello WorldPeoplePeople 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/

相关文章:

javascript - 为什么程序给我这条消息 : 'Program halted for running too long'

javascript - QUnit 装置并非每次都被恢复

javascript - Jquery 代码不工作 - 似乎很容易修复 - 有 fiddle

javascript - 如何仅删除以 "//"开头的 JavaScript 注释?

javascript - 使用正则表达式检查复选框

Javascript document.getElementById

javascript - 了解(通过 JavaScript)是否使用浏览器的历史记录到达当前页面

jquery - 使用正则表达式验证 URL 中的空格

regex - 字符串中单次出现的正则表达式

objective-c - 从 objective-c 中解析的 NSString 中提取单个值