1

私はJSにまったく慣れていないので、プロンプトを介した入力にスペースで 区切られた3つ以上の単語が含まれていることを検証する方法を理解するのに苦労しています。

これは私が持っているものです:

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

  if(phr != 0)
{
   alert("invalid");return
}
else{document.write("phr");
4

2 に答える 2

2

使用する:

if (/^([a-z]+\s+){2,}[a-z]+$/i.test(p))

説明:

  • [a-z]= 英字
  • [a-z]+= 1 つ以上のアルファベット文字、つまり単語
  • [a-z]+\s+= 単語の後に 1 つ以上の空白文字が続く
  • ([a-z]+\s+)= それぞれの後に空白を含む少なくとも 2 つの単語
  • ([a-z]+\s+){2,}[a-z]+= 上記の後にさらに 1 単語が続く
  • ^([a-z]+\s+){2,}[a-z]+$= 上記を文字列の先頭と末尾に固定します

修飾子により大文字と小文字が区別されないため、i大文字も許可されます。

于 2013-10-31T20:14:35.177 に答える
1

prompt CONTAINS three or more words, seperated by spaces, only alphabetical characters.

この正規表現を試すことができます:

/^[a-z]+( +[a-z]+){2,}$/i
于 2013-10-31T20:13:09.767 に答える