분류1
제목
○ 코드!!
숫자 0~9 => 48~57
영문 대문자 => 65~90
소문자 => 97~122
한글 가~힣 => 45032~55203
자음 => 12593~12622
모음 => 12623~12643
8616 5693 1547 9057 1379 5645 3188 3210 2334 8928 8654 2080 4616 5020 0755 4107 3501 8980 1278 3190
○ 미적거리며 해결 못했던이유!!
키보드 자판에 있는 !~%&*()_+|... 따위들의 특수문자는 일반 아스키코드표가 흔히 있기 때문에 그것만 막아주면 됐지만
ㅁ,ㄴ,ㄷ... 등의 자음선택후 한자버튼 누름시 나오는 유니코드들을 어떻게 막아야 할지 몰랐다. (키포드의 #과 ㅁ+한자+1의 #의 코드값은 엄연히 달랐다.)
처음에 한자키를 막으려 했지만, 분명히!!!! 한자키의 키코드가 25번이라고 여기저기 적혀있었지만 내컴퓨터에서 한자키를 눌러서 event.keyCode를 보면 아무 반응이 없었다 -ㅂ-+ (참고로 한/영키도 반응없음.)
두번째로 처음 방법이 안되자 좌절하며 특수기호들을 배열로 만들어서 그 배열에 맞는 값이 있으면 경고창을 띄워주려 했건만..
특수문자가 한두개냐 -_-+ 어느세월에 다 만들어.
○ 해결 소스!!
function chkchar(obj)
{
var chrTmp;
var strTmp = obj.value;
var strLen = strTmp.length;
var chkAlpha = false;
var resString = '';
if (strLen > 0) {
for (var i=0; i<strTmp.length; i++)
{
chrTmp = strTmp.charCodeAt(i);
if (!((chrTmp > 47 && chrTmp < 58) || (chrTmp > 64 && chrTmp < 91) || (chrTmp > 96 && chrTmp < 123) || (chrTmp > 44031 && chrTmp < 55203) || (chrTmp > 12592 && chrTmp < 12644)))
{
chkAlpha = true;
}
else
{
resString = resString + String.fromCharCode(chrTmp);
}
}
}
if (chkAlpha == true)
{
alert("한글,영문,숫자로만 작성해주세요.");
obj.value = resString;
obj.focus();
return false;
}
}
<input type="text" name="nick" onblur="chkchar(this)">
onkeydown일때 함수를 불러들일경우 "강아지★" <-- 즉 맨마직막문자에서 특수문자를 마우스로 선택할경우(ㅁ+한자+5번째문자 마우스로 선택) 처리가 이러나지 않음.
자바스크립트 알면 재밋고 모르면 미치고 ㅋ!
첨부파일 다운로드
등록일2018-07-12
조회수2,308