2011-06-29 7 views
2

3文字未満の単語にマッチするJavascript正規表現を作成しようとしています(長い単語と一致しません)。なぜこれがうまくいかないのか分かりません。javacriptの長さ関連の正規表現を使用できません

<html> 
     <body> 
       <script> 
       var re = new RegExp("(\W|^)\w{0,2}(\W|$)", "gi"); 
       var text = "ab ab"; 
       var matched = re.test(text); 
       document.write(matched) 

       </script> 
     </body> 
</html> 

私は最小限の例を得ようとしましたが、より多くの要件があります。例が完全でない場合は、必要なものを編集して追加します。

答えて

10

あなたの\はJavascriptエスケープとして扱われているので、正規表現の実際の値は"(W|^)w{0,2}(W|$)"です。

代わりに、リテラル正規表現を使用します。/(\W|^)\w{0,2}(\W|$)/gi

+1

素敵+1。私はそれがOPにあったことを知っていますが、私はあなたが '\ w'で' i'修飾子を必要としないと思うhttp://jsfiddle.net/cordsen/VQRPK/ – cordsen

関連する問題