我正在尝试使用以下规则验证javascript
中的名称字段:
我尝试过以下正则表达式,但我想确定它是否正确。
re = /^[a-z][a-z\s]{3,14}[a-z]$/i;
答案 0 :(得分:1)
您可以使用
/^(?=.{5,15}$)[a-z]+(?:\s+[a-z]+)*$/i
请参阅regex demo。
<强>详情
^
- 字符串开头(?=.{5,15}$)
- 一个积极的先行,只检查从字符串的开头到字符串的结尾是否有除断行字符之外的任何5到15个字符(这是非消耗的模式,当模式匹配时,正则表达式索引位于字符串的开头)[a-z]+
- (消费模式的开头)1个或多个ASCII字母(?:\s+[a-z]+)*
- 重复0次以上
\s+
- 一个或多个空格[a-z]+
- 1+ ASCII字母$
- 字符串结束。JS演示:
var rx = /^(?=.{5,15}$)[a-z]+(?: +[a-z]+)*$/i;
var strs = ["abcde abcde abc","abcde abcde","abcde abcdeabcde","abcde abcd1","abcdeabcde"];
for (var s of strs) {
console.log(s,"=>",rx.test(s));
}
&#13;