JSFiddle - React, Tailwind, and code Playground
HTML
<a href="http://jckim0414.com/javascript-japanese-imeinput-method-editor-control-v-0-0-1/"/>Javascript Japanese IME(Input Method Editor) Control V.0.0.1</a>
<br/>
<br/>
<div style="float:left;">
<input id="input"></input>
<button id="run">RUN</button>
</div>
<br/>
<br/>
<table style="float:left;">
<tr>
<th style="width:200px;">METHOD</th>
<th style="width:100px;">RESULT</th>
</tr>
<tr>
<td>isNumeric</td>
<td id="isNumeric"></td>
</tr>
<tr>
<td>isNumericWithFull</td>
<td id="isNumericWithFull"></td>
</tr>
<tr>
<td>isAlpha</td>
<td id="isAlpha"></td>
</tr>
<tr>
<td>isAlphaWithFull</td>
<td id="isAlphaWithFull"></td>
</tr>
<tr>
<td>isAlphaNumeric</td>
<td id="isAlphaNumeric"></td>
</tr>
<tr>
<td>isAlphaNumericWithFull</td>
<td id="isAlphaNumericWithFull"></td>
</tr>
<tr>
<td>isKanji</td>
<td id="isKanji"></td>
</tr>
<tr>
<td>isHiragana</td>
<td id="isHiragana"></td>
</tr>
<tr>
<td>isKatakana</td>
<td id="isKatakana"></td>
</tr>
<tr>
<td>isKatakanaHalf</td>
<td id="isKatakanaHalf"></td>
</tr>
<tr>
<td>isKatakanaWithHalf</td>
<td id="isKatakanaWithHalf"></td>
</tr>
<tr>
<td>isKana</td>
<td id="isKana"></td>
</tr>
<tr>
<td>isKanaWithHalf</td>
<td id="isKanaWithHalf"></td>
</tr>
<tr>
<td>isKanjiKana</td>
<td id="isKanjiKana"></td>
</tr>
<tr>
<td>isKanjiKanaWithHalf</td>
<td...
CSS
table, table tr, table tr td {
border: 1px solid black;
}
JavaScript
var JcRegExp = function () {
// unicode range is referenced by http://www.unicode.org/charts/
// Numeric
// \u0030-\u0039 ----- u0030:0 u0039:9
// FullWidth Numeric
// \uFF10-\uFF19 ----- uFF10:0 uFF19:9
// Alphabet Uppercase
// \u0041-\u005A ----- u0041:A u005A:Z
// Alphabet Lowercase
// \u0061-\u007A ----- u0061:a u007A:z
// FullWidth Alphabet Uppercase
// \uFF21-\uFF3A ----- uFF21:A uFF3A:Z
// FullWidth Alphabet Lowercase
// \uFF41-\uFF5A ----- uFF41:a uFF5A:a
// kanji
// \u4E00-\u9FAF ----- u4E00:一 u9FAF:龯
// Hiragana
// \u3041-\u3096 ----- u3041:ぁ u3096:ゖ
// Katakana
// \u30A1-\u30FF ----- u30A1:ァ u30FF:ヿ
// Katakana Phonetic Extensions
// \u31F0-\u31FF ----- u31F0:ㇰ u31FF:ㇿ
// Katakana Halfwidth
// \uFF66-\uFF9F ----- uFF66:ヲ uFF9F:゚
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;
...