我需要驗證 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 關注
- 280 瀏覽
添加回答
舉報
0/150
提交
取消