티스토리 뷰
Grand_J 2020. 12. 2. 14:21
Javascript 특수문자, 숫자 허용
//특수문자, 한글 체크 function validateText(input){ var str = input.value.replace(/[~!@\#$%^&*\()\-=+_'\;<>\/.\`:\"\\,\[\]?|{}ㄱ-ㅎㅏ-ㅣ가-힣]/gi,''); input.value = str; } // 숫자만 허용 function validateNumber(input){ var number = input.value.replace(/[^0-9]/g,''); input.value = number; } // 숫자,.만 허용 function validateNumberDot(input){ var number = input.value.replace(/[^0-9.]/g,''); input.value = number; } // 이메일 형식 체크 function validateEmail(str){ var email = str; if(email.search){ return(email.search(new RegExp("^([-!#$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}$","gi"))>=0); } if(email.indexOf){ at_character = email.indexOf('@'); if(at_character <= 0 || at_character+4 > email.length) return false; } if(email.length < 6) return false; else return true; }끗134123513123!~@
문제
줄바꿈 문자와 같은 특수 문자를 문자열에 삽입하고 싶다
해결
문자열에서 이스케이프 문자열을 사용하면 된다. 예를 들어 페이지에 표시할 문자열 안에 카피라이트 기호를 추가하고 싶다면 이스케이프 문자열 \u00A9 를 사용하면 된다.
var resultStr = "This page \u00A9 shelley Powers
"; //페이지에 출력 var blk = document.getElementById("result"); blk.innerHTML = resultStr;설명
자바스크립트에서 이스케이프 문자열은 백슬래시 문자로 시작한다.
다음은 이스케이프 문자열의 목록이다.
이스케이프 문자열의미\'작은 따옴표\"큰 따옴표\ \백슬래시\b백스페이스\f폼 피드\n줄 바꿈\r캐리지 리턴\t가로 탭\ddd8진수 문자열(ddd는 3자리 숫자)\xdd16진수 문자열(dd는 2자리 숫자)\udddd유니코드 문자열(dddd는 4자리 16진수 숫자)// html <input type="text" onkeyup="characterCheck(this)" onkeydown="characterCheck(this)" />
복붙할걸 감안해
키 대신에 onchange로 변경함..
// js function characterCheck(obj){ // 허용하고 싶은 특수문자가 있다면 여기서 삭제하면 됨 var regExp = /[ \{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi; if( regExp.test(obj.value) ){ alert("특수문자는 입력하실수 없습니다."); obj.value = obj.value.substring( 0 , obj.value.length - 1 ); // 입력한 특수문자 한자리 지움 } }
- 나 공백이 들어가게 되면
-나 공백을 넣기전 기존에 텍스트박스에 있던 값으로 되돌아간다
<script type="text/javascript"> // 수정전text 받아오기 var beforeEdit = document.getElementById('pro_name').value; console.log(beforeEdit); function characterCheck(obj){ // console.log(beforeEdit); // console.log(obj); // console.log(obj.value); // 못쓰게 하고싶은 특수 문자가 있다면 [] 내부에 넣기 var regExp = /[ -]/gi; if( regExp.test(obj.value) ){ alert("공백이나 '-'는 포함될 수 없습니다."); obj.value = beforeEdit; // textbox를 초기 값(초기이름)으로 되돌리기 // obj.value = obj.value.substring( 0 , obj.value.length - 1 ); // 입력한 특수문자 한자리 지움 } } </script>공유하기
게시글 관리
구독하기study저작자표시 비영리
'JavaScript' 카테고리의 다른 글
jquery - .empty() . append() 를 반복해야될 때 쓸 수 있는 .detach() (0)2021.08.25select 태그 option 값 가져오기 (0)2021.08.25datatables 특정컬럼 숨기기, 내림차순정렬 (0)2021.08.18창크기 자식창에서 부모창의 함수로 새 창 열때 크기 (0)2021.08.17배열 중복제거 (0)2021.08.13안녕하세요 남갯입니다
오늘은 특수문자 등 문자를 체크하는 방법에대해 포스팅 해보려고합니다.
var pattern_num = /[0-9]/; // 숫자
var pattern_eng = /[a-zA-Z]/; // 문자
var pattern_spc = /[~!@#$%^&*()_+|<>?:{}]/; // 특수문자
var pattern_kor = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/; // 한글체크
//
if( (pattern_num.test(str)) && !(pattern_eng.test(str)) && !(pattern_spc.test(str)) && !(pattern_kor.test(str)) ){
return true
}else{
alert("숫자만 입력 가능합니다.")
return false
}
번호만 입력하게 하기위해선
위와같이 test함수를 이용해 체크가 가능합니다.
저는 번호만 입력받게하기 위해 위와같이 구성했습니다.
공유하기
게시글 관리
구독하기남갯,YTS의 개발,일상블로그저작자표시 비영리 동일조건
- 카카오스토리
- 트위터
- 페이스북