猿问

正则表达式匹配具有四个或更多单词的字符串?

我需要验证 HTML 表单输入,使其文本输入中至少包含 4 个单词。例如,“ABC D”会匹配,但“ABC C”不会匹配。

我曾尝试将其分解为匹配一个在任何地方都有 3 个或更多单个空格的字符串,但截至今天,我对正则表达式还是陌生的。我尝试过 的变体/^ {3,}+$/,但要明白这只是匹配连续重复的三个空格字符。我已经对此进行了几个小时的黑客攻击,所以我不太记得我尝试过的其他所有事情。任何帮助是极大的赞赏!


慕妹3242003
浏览 218回答 3
3回答

天涯尽头无女友

^\w+(?: \w+){3,}$\s不推荐使用,因为它包含[\t\r\n\f]。即: \s 匹配空格、制表符、回车符、换行符或换页符。\w+检查第一个单词的解释。(该单词可以包含 [a-zA-Z_]。 ( \w+){3,}检查接下来的 3 个或更多单词(单词必须以空格开头并且具有一个或多个单词字符)。

梵蒂冈之花

它并不花哨(对于编写这些仍然很新鲜),但它有效:\w+\s\w+\s\w+\s\w+([\s\w+]\w+)?匹配任意数量的单词字符,后跟空格 3 次或以上,并以单词字符结尾。

慕后森

如果你的单词之间用空格分隔,你可以直接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");
随时随地看视频慕课网APP

相关分类

Html5
我要回答