0

入力フィールドに少なくとも 2 つの単語があることを確認するための正規表現を探しています。

私はこれを試しました:

var spaceReg = /^\w+\s\w+$/

それは問題なく動作しますが、単語が 3 つ以上ある場合 (または、このマイヤーミラーのような単語がある場合) は機能しなくなります。

私の次の試みはこれでした:

/^(?:[\w-]+ ?)*$/

しかし、これは、最初の単語の最後に単一の単語でスペースがある場合にも機能します。

ここに助けを求める専門家はいますか?

4

3 に答える 3

2

文字列マーカーの開始と終了を追加しないでください:

var spaceReg =  /\w\s+\w/

単語とスペース以外がないようにしたい場合は、次を使用できます

var spaceReg =  /^\w+\s+\w[\w\s]*$/

開始時にスペース (質問からわからない) とダッシュ (コメントから) を許可する場合は、使用します。

var spaceReg =  /^\s*[\w-]+\s+[\w-][\w-\s]*$/
于 2013-04-19T17:47:18.777 に答える
1

編集:私は当初、ダッシュで区切られた単語を一致させたいと思っていました..これを試してください: http://jsfiddle.net/YbWYp/8/

var spaceReg =  /[\-\w]+\s[\-\w]+/

編集:また、テストしている文字列のどこかにスペース以外のスペースがあることを確認したい場合は、次のような簡単なことを行うことができます: http://jsfiddle.net/YbWYp/10/

var pattern = /\S\s\S/
于 2013-04-19T17:49:29.440 に答える
0
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 の右側に * を追加できます

于 2013-04-19T17:51:33.477 に答える