var JcRegExp = function () {
this.reNumeric = /[\u0030-\u0039]/g;
this.reNumericFull = /[\uFF10-\uFF19]/g;
this.reAlpha = /[\u0041-\u005A|\u0061-\u007A]/g;
this.reAlphaFull = /[\uFF21-\uFF3A|\uFF41-\uFF5A]/g;
this.reAlphaNumeric = /[\u0030-\u0039|\u0041-\u005A|\u0061-\u007A]/g;
this.reAlphaNumericFull = /[\uFF10-\uFF19|\uFF21-\uFF3A|\uFF41-\uFF5A]/g;
this.reKanji = /[\u4E00-\u9FAF]/g;
this.reHiragana = /[\u3041-\u3096]/g;
this.reKatakana = /[\u30A1-\u31FF]/g;
this.reKatakanaHalf = /[\uFF66-\uFF9F]/g;
this.reKatakanaWithHalf = /[\u30A1-\u31FF|\uFF66-\uFF9F]/g;
this.reKana = /[\u3041-\u3096|\u30A1-\u31FF]/g;
this.reKanaWithHalf = /[\u3041-\u3096|\u30A1-\u31FF|\uFF66-\uFF9F]/g
this.reKanjiKana = /[\u4E00-\u9FAF|\u3041-\u3096|\u30A1-\u31FF]/g;
this.reKanjiKanaWithHalf = /[\u4E00-\u9FAF|\u3041-\u3096|\u30A1-\u31FF|\uFF66-\uFF9F]/g;
this.reKanjiHiragana = /[\u4E00-\u9FAF|\u3041-\u3096]/g;
this.reKanjiKatakana = /[\u4E00-\u9FAF|\u30A1-\u31FF]/g;
this.reKanjiKatakanaHalf = /[\u4E00-\u9FAF|\uFF66-\uFF9F]/g;
this.reKanjiKatakanaWithHalf = /[\u4E00-\u9FAF|\u30A1-\u31FF|\uFF66-\uFF9F]/g;
this.reNoNumeric = /[^\u0030-\u0039]/g;
this.reNoNumericWithFull = /[^\u0030-\u0039|\uFF10-\uFF19]/g;
this.reNoAlpha = /[^\u0041-\u005A|\u0061-\u007A]/g;
this.reNoAlphaWithFull = /[^\u0041-\u005A|\u0061-\u007A|\uFF21-\uFF3A|\uFF41-\uFF5A]/g;
this.reNoAlphaNumeric = /[^\u0030-\u0039|\u0041-\u005A|\u0061-\u007A]/g;
this.reNoAlphaNumericWithFull = /[^\u0030-\u0039|\uFF10-\uFF19|\u0041-\u005A|\u0061-\u007A|\uFF21-\uFF3A|\uFF41-\uFF5A]/g;
this.reNoKanji = /[^\u4E00-\u9FAF]/g;
this.reNoHiragana = /[^\u3041-\u3096]/g;
this.reNoKatakana = /[^\u30A1-\u31FF]/g;
this.reNoKatakanaHalf = /[^\uFF66-\uFF9F]/g;
this.reNoKatakanaWithHalf = /[^\u30A1-\u31FF|\uFF66-\uFF9F]/g;
this.reNoKana = /[^\u3041-\u3096|\u30A1-\u31FF]/g;
this.reNoKanaWithHalf = /[^\u3041-\u3096|\u30A1-\u31FF|\uFF66-\uFF9F]/g
this.reNoKanjiKana = /[^\u4E00-\u9FAF|\u3041-\u3096|\u30A1-\u31FF]/g;
this.reNoKanjiKanaWithHalf = /[^\u4E00-\u9FAF|\u3041-\u3096|\u30A1-\u31FF|\uFF66-\uFF9F]/g;
this.reNoKanjiHiragana = /[^\u4E00-\u9FAF|\u3041-\u3096]/g;
this.reNoKanjiKatakana = /[^\u4E00-\u9FAF|\u30A1-\u31FF]/g;
this.reNoKanjiKatakanaHalf = /[^\u4E00-\u9FAF|\uFF66-\uFF9F]/g;
this.reNoKanjiKatakanaWithHalf = /[^\u4E00-\u9FAF|\u30A1-\u31FF|\uFF66-\uFF9F]/g;
return "this is RegExp support for Japanese.";
returnTrueWhenNullOrEmpty: false
isNumeric: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoNumeric);
isNumericWithFull: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoNumericWithFull);
isAlpha: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoAlpha);
isAlphaWithFull: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoAlphaWithFull);
isAlphaNumeric: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoAlphaNumeric);
isAlphaNumericWithFull: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoAlphaNumericWithFull);
isKanji: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanji);
isHiragana: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoHiragana);
isKatakana: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKatakana);
isKatakanaHalf: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKatakanaHalf);
isKatakanaWithHalf: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKatakanaWithHalf);
isKana: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKana);
isKanaWithHalf: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanaWithHalf);
isKanjiKana: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanjiKana);
isKanjiKanaWithHalf: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanjiKanaWithHalf);
isKanjiHiragana: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanjiHiragana);
isKanjiKatakana: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanjiKatakana);
isKanjiKatakanaHalf: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanjiKatakanaHalf);
isKanjiKatakanaWithHalf: function (value) {
if (this.isNullOrEmpty(value) && !this.returnTrueWhenNullOrEmpty) { return false; }
return !value.match(this.reNoKanjiKatakanaWithHalf);
getNumeric: function (value) {
return value.replace(this.reNoNumericWithFull, "").replace(this.reNumericFull, function (s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
getNumericFull: function (value) {
return value.replace(this.reNoNumericWithFull, "").replace(this.reNumeric, function (s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
getAlpha: function (value) {
return value.replace(this.reNoAlphaWithFull, "").replace(this.reAlphaFull, function (s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
getAlphaFull: function (value) {
return value.replace(this.reNoAlphaWithFull, "").replace(this.reAlpha, function (s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
getAlphaNumeric: function (value) {
return value.replace(this.reNoAlphaNumericWithFull, "").replace(this.reAlphaNumericFull, function (s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
getAlphaNumericFull: function (value) {
return value.replace(this.reNoAlphaNumericWithFull, "").replace(this.reAlphaNumeric, function (s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
getKanji: function (value) {
return value.replace(this.reNoKanjiKana, "");
getKanjiOnly: function (value) {
return value.replace(this.reNoKanji, "");
getHiragana: function (value) {
return value.replace(this.reNoHiragana, "");
getKatakana: function (value) {
return value.replace(this.reNoKatakanaWithHalf, "").replace(this.reKatakanaHalf, function (s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
getKatakanaHalf: function (value) {
return value.replace(this.reNoKatakanaWithHalf, "").replace(this.reKatakanaHalf, function (s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
getKana: function (value) {
return value.replace(this.reNoKana, "");
isNullOrEmpty: function (value) {
return value === undefined || value === null || value === "";
document.getElementById("run").onclick = function() {
setValueAuto("isNumeric");
setValueAuto("isNumericWithFull");
setValueAuto("isAlphaWithFull");
setValueAuto("isAlphaNumeric");
setValueAuto("isAlphaNumericWithFull");
setValueAuto("isHiragana");
setValueAuto("isKatakana");
setValueAuto("isKatakanaHalf");
setValueAuto("isKatakanaWithHalf");
setValueAuto("isKanaWithHalf");
setValueAuto("isKanjiKana");
setValueAuto("isKanjiKanaWithHalf");
setValueAuto("isKanjiHiragana");
setValueAuto("isKanjiKatakana");
setValueAuto("isKanjiKatakanaHalf");
setValueAuto("isKanjiKatakanaWithHalf");
setValueAuto("getNumeric");
setValueAuto("getNumericFull");
setValueAuto("getAlpha");
setValueAuto("getAlphaFull");
setValueAuto("getAlphaNumeric");
setValueAuto("getAlphaNumericFull");
setValueAuto("getKanji");
setValueAuto("getKanjiOnly");
setValueAuto("getHiragana");
setValueAuto("getKatakana");
setValueAuto("getKatakanaHalf");
function setValueAuto(apiName) {
var value = re[apiName](document.getElementById("input").value);
document.getElementById(apiName).innerText = value;
document.getElementById(apiName).style.color = value ? "blue" : "red";