我需要验证 HTML 表单输入,使其文本输入中至少包含 4 个单词。例如,“ABC D”会匹配,但“ABC C”不会匹配。我曾尝试将其分解为匹配一个在任何地方都有 3 个或更多单个空格的字符串,但截至今天,我对正则表达式还是陌生的。我尝试过 的变体/^ {3,}+$/,但要明白这只是匹配连续重复的三个空格字符。我已经对此进行了几个小时的黑客攻击,所以我不太记得我尝试过的其他所有事情。任何帮助是极大的赞赏!
3 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
^\w+(?: \w+){3,}$
\s
不推荐使用,因为它包含[\t\r\n\f]。即: \s 匹配空格、制表符、回车符、换行符或换页符。
\w+
检查第一个单词的解释。(该单词可以包含 [a-zA-Z_]。 ( \w+){3,}
检查接下来的 3 个或更多单词(单词必须以空格开头并且具有一个或多个单词字符)。
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
它并不花哨(对于编写这些仍然很新鲜),但它有效:
\w+\s\w+\s\w+\s\w+([\s\w+]\w+)?
匹配任意数量的单词字符,后跟空格 3 次或以上,并以单词字符结尾。
慕后森
TA贡献1802条经验 获得超5个赞
如果你的单词之间用空格分隔,你可以直接split()
计算结果的数量,如果是 4 个或更多,则通过。请注意我们trim()
首先是字符串,这样前导或尾随空格就不会错误地增加字数:
let str = 'A B C D';
if (str.trim().split(' ').length >= 4)
console.log("'" + str + "' is OK");
str = 'A B C ';
if (str.trim().split(' ').length >= 4)
console.log("'" + str + "' is OK");
- 3 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消