Ric*_*rdo 4 html javascript 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" />
Run Code Online (Sandbox Code Playgroud)
我在 JavaScript 代码中的意思是:
if(document.getElementById("name").value.match(RegExCodeForMin3Words) === null){
alert("Name invalid");
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直无法学习如何使 regex 匹配单词的数量(我仍然是 Regex 的初学者)。你能帮我解决这个问题吗?也许正则表达式不是解决这个问题的最佳选择?
谢谢!
正则表达式匹配包含至少三个单词的字符串。
\S+\s+\S+\s+\S+
Run Code Online (Sandbox Code Playgroud)
\S+
匹配一个或多个非空格字符。如果您将单词表示为非空格字符的任意组合,那么您可以使用上面的正则表达式。
或者
\b\w+\b(?:.*?\b\w+\b){2}
Run Code Online (Sandbox Code Playgroud)
> /\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
Run Code Online (Sandbox Code Playgroud)
\w+
匹配一个或多个单词字符。所以这形成了一个完整的词。(?:.*?\b\w+\b){2}
确保在第一个单词之后必须有另外两个单词。{2}
量词正好重复前一个标记两次。