【Javascript】全角/半角の文字数チェック
全角/半角の文字数チェック、
・入力欄の文字のバイト数を表示するスクリプトです。
・全角と半角が混在する文字列も正確にカウントすると思います。
・VBScriptのコードも記述しています。
<html>
<head><title>文字数チェック</title>
</head>
<script language="VBScript">
FUNCTION fncVBS_Check
DIM w_DATA
DIM intLoop
DIM intAscii
DIM intHANKAKU_CNT
DIM intZENKAKU_CNT
DIM intBYTE_CNT
intHANKAKU_CNT = 0
intZENKAKU_CNT = 0
w_DATA = Trim(frmMain.txtMOJIRETU.Value)
For intLoop = 1 To Len(w_DATA)
intAscii = Asc(Mid(w_DATA, intLoop, 1))
If(0 <= intAscii And intAscii <= 255) Then
intHANKAKU_CNT = intHANKAKU_CNT + 1
Else
intZENKAKU_CNT = intZENKAKU_CNT + 1
End If
Next
intBYTE_CNT = intHANKAKU_CNT + (intZENKAKU_CNT * 2)
divRESULT.innerTEXT = "半角:" & intHANKAKU_CNT & " , 全角:" & intZENKAKU_CNT & " , 全体バイト数:" & intBYTE_CNT
END FUNCTION
//-->
</script>
<script type="text/javascript">
<!--
function fncJVS_Check(){
var w_DATA;
var intLoop;
var c;
var intHANKAKU_CNT;
var intZENKAKU_CNT;
var intBYTE_CNT;
var c;
intHANKAKU_CNT = 0;
intZENKAKU_CNT = 0;
w_DATA = frmMain.txtMOJIRETU.value;
for (var intLoop = 0; intLoop < w_DATA.length; intLoop++) {
c = w_DATA.charCodeAt(intLoop);
// Shift_JIS: 0x0 ~ 0x80, 0xa0 , 0xa1 ~ 0xdf , 0xfd ~ 0xff
// Unicode : 0x0 ~ 0x80, 0xf8f0, 0xff61 ~ 0xff9f, 0xf8f1 ~ 0xf8f3
if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
intHANKAKU_CNT++;
} else {
intZENKAKU_CNT++;
}
}
intBYTE_CNT = intHANKAKU_CNT + (intZENKAKU_CNT * 2);
document.getElementById("divRESULT").innerText = "半角:" + intHANKAKU_CNT + " , 全角:" + intZENKAKU_CNT + " , 全体バイト数:" + intBYTE_CNT;
}
//-->
</script>
<body>
<form name="frmMain">
<input type="text" size="100" name="txtMOJIRETU" /><br/>
<input type="button" name="btnRUN1" value="VBScript Check" onclick="fncVBS_Check" />
<input type="button" name="btnRUN2" value="JavaScript Check" onclick="fncJVS_Check()" />
<div id="divRESULT"></div>
</form>
</body>
</html>