2011-01-30 8 views
2

だから私はこれを持っている:jqueryバリデーションプラグインで少なくとも2つの単語をチェックする方法は?

jQuery.validator.addMethod("tagcheck", function(value, element) { 
    var space = value.split(' '); 
    return value.indexOf(" ") > 0 && space[1] != ''; 
}, "At least two words."); 

は完璧に動作しますが、私は、単語間の最初の文字または2つのスペースの前にスペースがある場合、その作業はありません。

これは、最初の文字の前にスペースがあり

var string = "one two"; 
var space = string.split(" "); // ["one", "", "two"] There is a space between the first 
// space and second space and thats null. 

: おかげ

答えて

4

それは言葉の間に2つのスペースがあります。

var string = " foo bar"; 
var location = value.indexOf(" "); // returns 0 since the first space is at location 0 

正規表現を使用します。

var reg = new RegExp("(\\w+)(\\s+)(\\w+)"); 
reg.test("foo bar"); // returns true 
reg.test("foo bar"); // returns true 
reg.test(" foo bar"); // returns true 

.testRegExpを参照してください。

\wはすべての英字に一致します。 \sは任意のスペース文字に一致します。

さんがあなたのためにあなたのコードスニペットにそのを取り入れてみましょう:

var tagCheckRE = new RegExp("(\\w+)(\\s+)(\\w+)"); 

jQuery.validator.addMethod("tagcheck", function(value, element) { 
    return tagCheckRE.test(value); 
}, "At least two words."); 
+0

ありがとう:jQuery.validator.addMethod( "tagcheck"、機能(値、要素){ 戻りvalue.match( "(\\ W + )(\\ s +)(\\ w +) "); }、"少なくとも2単語。 – passatgt

関連する問題