Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式模式匹配_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式模式匹配

JavaScript正则表达式模式匹配,javascript,regex,Javascript,Regex,我对JS完全是新手,很难弄清楚如何验证输入是否正确 via prompt包含三个或三个以上的单词,以空格分隔,仅包含字母字符 这就是我所拥有的: var p = prompt("Enter a phrase:", ""); var phr = p.search(/^[^0-9][2,3]$/); if(phr != 0) { alert("invalid");return } else{document.write("phr"); prompt包含三个或三个以上的单词,用空格分隔,

我对JS完全是新手,很难弄清楚如何验证输入是否正确 via prompt包含三个或三个以上的单词,以空格分隔,仅包含字母字符

这就是我所拥有的:

var p = prompt("Enter a phrase:", "");
var phr = p.search(/^[^0-9][2,3]$/);

  if(phr != 0)
{
   alert("invalid");return
}
else{document.write("phr");
prompt包含三个或三个以上的单词,用空格分隔,仅包含字母字符。

您可以尝试以下正则表达式:

/^[a-z]+( +[a-z]+){2,}$/i
使用:

说明:

  • [a-z]
    =字母字符
  • [a-z]+
    =一个或多个字母字符,即一个单词
  • [a-z]+\s+
    =单词后跟一个或多个空格字符
  • ([a-z]+\s+)
    =至少2个单词,每个单词后面有空格
  • ([a-z]+\s+{2,}[a-z]+
    =前面跟一个单词
  • ^([a-z]+\s+{2,}[a-z]+$
    =将上述内容锚定到字符串的开头和结尾

i
修饰符使其不区分大小写,因此它也允许大写字母。

@Floris-
\w
也将匹配数字。此外,对于一个三个字符长的字符串,表达式将需要额外的空格。@edi_allen-你说得对。我不知道我在想什么。
^/
应该是
/^
,不是吗?@Boaz:非常感谢,这是个打字错误,已经修复了。
if (/^([a-z]+\s+){2,}[a-z]+$/i.test(p))