入力フィールドに少なくとも 2 つの単語があることを確認するための正規表現を探しています。
私はこれを試しました:
var spaceReg = /^\w+\s\w+$/
それは問題なく動作しますが、単語が 3 つ以上ある場合 (または、このマイヤーミラーのような単語がある場合) は機能しなくなります。
私の次の試みはこれでした:
/^(?:[\w-]+ ?)*$/
しかし、これは、最初の単語の最後に単一の単語でスペースがある場合にも機能します。
ここに助けを求める専門家はいますか?
入力フィールドに少なくとも 2 つの単語があることを確認するための正規表現を探しています。
私はこれを試しました:
var spaceReg = /^\w+\s\w+$/
それは問題なく動作しますが、単語が 3 つ以上ある場合 (または、このマイヤーミラーのような単語がある場合) は機能しなくなります。
私の次の試みはこれでした:
/^(?:[\w-]+ ?)*$/
しかし、これは、最初の単語の最後に単一の単語でスペースがある場合にも機能します。
ここに助けを求める専門家はいますか?
文字列マーカーの開始と終了を追加しないでください:
var spaceReg = /\w\s+\w/
単語とスペース以外がないようにしたい場合は、次を使用できます
var spaceReg = /^\w+\s+\w[\w\s]*$/
開始時にスペース (質問からわからない) とダッシュ (コメントから) を許可する場合は、使用します。
var spaceReg = /^\s*[\w-]+\s+[\w-][\w-\s]*$/
編集:私は当初、ダッシュで区切られた単語を一致させたいと思っていました..これを試してください: http://jsfiddle.net/YbWYp/8/
var spaceReg = /[\-\w]+\s[\-\w]+/
編集:また、テストしている文字列のどこかにスペース以外のスペースがあることを確認したい場合は、次のような簡単なことを行うことができます: http://jsfiddle.net/YbWYp/10/
var pattern = /\S\s\S/
1.8.7 :004 > "asd asdasd "=~ /\w+(\s\w+)+/
=> 0
1.8.7 :005 > "asd asdasd"=~ /\w+(\s\w+)+/
=> 0
1.8.7 :006 > "asd asdasd asd"=~ /\w+(\s\w+)+/
=> 0
1.8.7 :007 > "asd"=~ /\w+(\s\w+)+/
複数のスペースをサポートするために、\s の右側に * を追加できます