본문 바로가기

JavaScript

[JavaScript] 특수문자 제거

  var limit_char = /[~!\#$^&*\=+|:;?"<,.>']/;

  if(limit_char.test(document.iForm.name.value)) {
   alert('특수문자는 삭제 됩니다.');
   alert(document.iForm.name.value.replace(limit_char,""));
   document.iForm.name.value=document.iForm.name.value.replace(limit_char,"");
   return;
  }

 onKeyPressUp...


//일괄비교 후 처리
var limit_char = /[~!\#$^&*\=+|:;?"<,.>']/;

  if(limit_char.test(document.iForm.name.value)) {
   alert('특수문자는 삭제 됩니다.');
   var tmp_str="";
   for(var i=0; i<document.iForm.name.value.length; i++) {
    var data = document.iForm.name.value.charAt(i);
    tmp_str+=data.replace(limit_char,"");

   }
   alert(tmp_str);
   document.iForm.name.value = tmp_str;
   return;
  }

꼼즈님께서 지적해주신 내용입니다.

위 정규식은 맨 앞의 특수문자만 없어지는 오류가 있습니다.
while(str.test())를 사용하여 반복적으로 replace처리를 하거나
아래의 방법을 사용하시는 것을 권해드립니다.
----------------------------------------
var specialChars = /[~!#$^&*=+|:;?"<,.>']/;
return str.split(specialChars).join("");
----------------------------------------

오류를 알려주신 꼼즈님 감사합니다. :)