javascript - 如何验证 HTML 表单中至少 3 个单词?

标签 javascript html regex validation counter

一段时间以来,我一直在尝试解决这个问题,但我一直做不到。我必须制作一个表格,并且我必须验证名称输入在 JavaScript 中至少包含 3 个单词。我认为最好的方法是使用 Regex 及其\b 属性。

这是

    <input type="text" class="texto" name="Nombre" id="name" title="nombre_cliente" style="color:#888;" placeholder="Nombre del cliente" />

我在 JavaScript 代码中的意思是:

        if(document.getElementById("name").value.match(RegExCodeForMin3Words) === null){
        alert("Name invalid");
    }

到目前为止,我一直无法学习如何使正则表达式匹配单词的数量(我仍然是正则表达式的初学者)。你能帮我解决这个问题吗?也许正则表达式不是解决这个问题的最佳选择?

谢谢!

最佳答案

正则表达式匹配包含至少三个单词的字符串。

\S+\s+\S+\s+\S+

\S+ 匹配一个或多个非空格字符。如果您将单词表示为非空格字符的任意组合,那么您可以使用上面的正则表达式。

\b\w+\b(?:.*?\b\w+\b){2}

DEMO

> /\b\w+\b(?:.*?\b\w+\b){2}/.test('foo bar buz')
true
> /\b\w+\b(?:.*?\b\w+\b){2}/.test('foo bar')
false
> /\b\w+\b(?:.*?\b\w+\b){2}/.test('foo bar bux foobar')
true

\w+ 匹配一个或多个单词字符。所以这形成了一个完整的单词。 (?:.*?\b\w+\b){2} 确保在第一个词之后必须有另外两个词。 {2} 量词恰好重复前一个标记两次。

关于javascript - 如何验证 HTML 表单中至少 3 个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29598623/

相关文章:

regex - 如何使用perl的正则表达式匹配汉字

javascript - Span 在 mouseenter 上闪烁

javascript - 从 JSON 对象获取数组

php - 删除 cURL 中的 html 标签

python - 将数据从 HTML 表单发送到 Flask 中的 Python 脚本

regex - 为什么 Bash 模式匹配 ?(*[[ :class:]])foobar slow?

python - 45 个十六进制数字或 48 个十六进制数字的模式的正则表达式 - Python

javascript - 如何使用 Shopify api 从 "Note"框中更新购物车 "Additional content & scripts"

javascript - Chrome 扩展程序 : Schema "file://" not allowed in "permissions"

html - 如何使用在 php 文件中分配的变量加载 phtml 文件