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