JavaScriptで全角カタカナチェックを行うサンプルFunctionです。
全角カタカナチェックを行う
例)値が全角カタカナの場合はtrueを返す(空文字はOK,全角スペースはOK)
1 2 3 4 5 6 7 8 |
function isZenKatakana(str){ str = (str==null)?"":str; if(str.match(/^[ァ-ヶー ]+$/)){ //"ー"の後ろの文字は全角スペースです。 return true; }else{ return false; } } |
実行サンプル
ボタンを押すと、テキストボックスの値が全角カタカナのみかどうか判定します。
解説
- 正規表現で全角カタカナのみかどうかを判定しています。
- 空文字はNGとしています。空文字をOKとしたい場合は正規表現中の+を*に変更してください。 →(/^[ァ-ヶー ]*$/)
- ひらがなチェックを行いたい場合は以下記事をご覧ください。
「JavaScriptでひらがなチェックを行う」
JavaScriptの正規表現を再確認したわけではないので、もし間違っていたら済みません。解説欄の空白NGの件ですが、+ は 直前の表現を1 回以上繰り返し、* は 0 回以上の繰り返しを意味していませんでしょうか。
このページのサンプルですが、*を使われているのだと思いますが、そうすると空欄にしても「全角カタカナのみです」という表示になります。UXとしてはどうでしょう・・・
私の思う修正案は、サンプル動作は+で、プログラミングとしては適宜*も視野に、空白は表現から取ることで実現、です。良いサイトだと思ったので、思いつくままですが、改善案をと思いコメントさせて頂きます。
コメントありがとうございます!
ご指摘の通り「+」をデフォルトとしたほうがいいですね。
記事を修正させていただきました。
とてもありがたいご指摘ありがとうございました。
他に気になる点がございましたらまたご指摘お願い致します。