html - onkeyup="JavaScript:check();"
function check()
{
var form = document.<%= PAGE_FORMNAME %>;
var text = form.nickname.value;//변경 전 text
//alert(getStringLength(text));
var len = getStringLength(text);
if(len > 20){
alert('20byte 미만이어야 합니다.');
form.nickname.value = byteSlicer(text, 20);
}
var counter = document.getElementById('byteT');
counter.innerText = getStringLength(form.nickname.value);
}
// 문자열 길이 체크 알파뉴메릭(1자리), 한글(2자리)
function getStringLength (str)
{
var retCode = 0;
var strLength = 0;
for (i = 0; i < str.length; i++)
{
var code = str.charCodeAt(i)
var ch = str.substr(i,1).toUpperCase()
code = parseInt(code)
if ((ch < "0" || ch > "9") && (ch < "A" || ch > "Z") && ((code > 255) || (code < 0)))
strLength = strLength + 2;
else
strLength = strLength + 1;
}
return strLength;
}
function byteSlicer(str, length) {
var len = 0;
var retVal = "";
if(str == null)
return str;
for(var i = 0; i < length; i++) {
var c = escape(str.charAt(i));
if(c.length == 1) len++;
else if(c.indexOf("%u") != -1) len += 2;
else if(c.indexOf("%") != -1) len += c.length / 3;
retVal += c;
if(len + (escape(str.charAt(i+1)).indexOf("%u") != -1 ? 2 : escape(str.charAt(i+1)).indexOf("%") != -1 ? escape(str.charAt(i+1)).length / 3 : 1) > length) break;
}
return unescape(retVal);
}
'IT > JAVA' 카테고리의 다른 글
[공유] JSON을 이용하여 서버와 통신하기(with JAVA, Javascript) (0) | 2018.12.27 |
---|---|
[공유] Spring_IBatis 에서 clob 처리 (0) | 2018.12.27 |
[공유] 다음 오픈 에디터 적용 (0) | 2018.12.27 |
인코딩 문제 (0) | 2018.12.27 |
[공유] JAVA 시스템 구축하는데 참 힘듭니다.... (0) | 2018.12.27 |