Detecting Kanji, Hiragana, and/or Katakana with Javascript
Does your web application need to validate Japanese input; need to determine if a String is kanji, hiragana, katakana, or a mixture?
Here's how...
// matches a single kanji character
String.prototype.isaKanji = function(){
return !!this.match(/^[\u4E00-\u9FAF]$/);
}
// matches one or more kanji characters
String.prototype.isKanji = function(){
return !!this.match(/^[\u4E00-\u9FAF]+$/);
}
// matches one or more hiragana characters
String.prototype.isHiragana = function(){
return !!this.match(/^[\u3040-\u3096]+$/)
}
// matches one or more full-width katakana characters
String.prototype.isKatakana = function(){
return !!this.match(/^[\u30A1-\u30FA]+$/)
}
// kana is hirgana, full-width katakana,
// half-width katakana, or a katakana
// phonetic extension
String.prototype.isKana = function(){
return !!this.match(/^[\u3040-\u3096|\u30A1-\u30FA|\uFF66-\uFF9D|\u31F0-\u31FF]+$/)
}
// matches a String that contains kanji and/or kana character(s)
String.prototype.isKanjiKana = function(){
return !!this.match(/^[\u4E00-\u9FAF|\u3040-\u3096|\u30A1-\u30FA|\uFF66-\uFF9D|\u31F0-\u31FF]+$/);
}
All of the methods return either true, or false. Punctuation marks will not match. You also need to be sure to set the charset of the page to utf-8.
//returns true "漢字".isKanji(); //returns false "漢字".isaKanji(); //returns true "字".isaKanji(); // returns true "カタカナ".isKatakana(); // returns true "ひらがな".isHiragana(); // returns true "漢字ひらがなカタカナ".isKanjiKana(); // returns false "漢字ひらがなカタカナRomaji".isKanjiKana(); // returns false "漢字ひらがなカタカナ。。。".isKanjiKana();



