全角カタカナのみかどうかのチェックをする

JavaScriptで全角カタカナチェックを行うサンプルです。

正規表現を使ってマッチするかどうかだけです。

Program

句読点を含まない場合。全角スペースは含む場合。

var s = "パピプペポー";
/^[ァ-ヶー ]*$/.test(s); // → true 

句読点を含める場合。

var s = "パン。ラーメン、ウドン。";
/^[ァ-ヶー 、。]*$/.test(s); // → true
var s = "パン。ラーメン、うどん。";
/^[ァ-ヶー 、。]*$/.test(s); // → false

関数として作ると以下のようになります。

function isKatakana(s)
{
  return /^[ァ-ヶー ]*$/.test(s);
}

正規表現オブジェクトを定義しておくのもよいでしょう。

var katakana = new RegExp(/^[ァ-ヶー ]*$/);

katakana.test("アイウエオワヲン"); // → false
katakana.test("aiueo"); // → false
katakana.test("あい うえ おー"); // → true

Demo

結果:

Memo

String.match を使ってもよいですが、matchしたいものがStringかどうかチェックが必要になるので、チェックのみであれば RegExp.test のほうが楽です。

null.match(/^[ァ-ヶー ]*$/); // Uncaught TypeError: Cannot read property 'match' of null
123.match(/^[ァ-ヶー ]*$/); // Uncaught SyntaxError: Invalid or unexpected token
/^[ァ-ヶー ]*$/.test(123); // false
/^[ァ-ヶー ]*$/.test(undefined); // false

空文字はエラーとしたい場合は、正規表現の /^[ァ-ヶー ]*$/ を /^[ァ-ヶー ]+$/ にします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です