正規表現"\w"は日本語にマッチしない
JavaScriptの 正規表現"\w"は日本語にマッチしない。以下検証用のコード。
/*文字列に正規表現がマッチするか評価する。*/ function test( str, reg ) { var out = document.getElementById("out"); out.innerHTML += str + " / " + reg + " : " + ( new RegExp(reg).test( str ) ) + "<br/>"; } /*メイン*/ function main() { var str = "あ"; test( str, "あ" ); // マッチする test( str, "." ); // マッチする test( str, "\\w" ); // マッチしない // アルファベットは当然いけるのだけど。 test( "a", "\\w" ); // マッチする }
検索して見つけた次の記事によると、「ひらがなとカタカナすべて」であれば「/[ぁ-んァ-ン]/ 」と書けばよいらしい。(→All About - JavaScriptで入力文字制限!)
漢字もOKな場合はどうするのがいいのかなー。目的は入力値のチェックなので、ブラックリスト方式でチェックする手もあるかな。