메뉴 건너뛰기

조회 수 842 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

아직도 자바스크립트에 관해서는 많이 서툰 필자가 그동안 품어왔던 자바 스크립트에 대한 의문중 하나를 풀게 되었다.(기초부터 차근차근 배웠다면 풀고 말고도 없었을꺼 같지만.ㅡ.ㅡ)
"왜 자바에는 replace가 한번만 치환을 할까?" 하는 의문점이 바로 그것인데..(왜 자바스크립트에는 trim함수가 없을까는.. \s 때문일려나?)
그 이유는 자바스크립트가 다른 언어에서 처럼 정규식 치환함수와, 일반적인 치환함수가 따로 있는 것이 아니라 replace 함수가 정규식도 취급하고 있기 때문에 였던것이다.
그리고 그와 관련해서 필자가 한번에 모두 바꾸어주는 기능으로 하려고 했던것까지 같이 소개를 해보겠다. 아래 소스를 보자.

<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$( function(){
	$( 'input' ).on("blur keyup", function() {
		$(this).val( $(this).val().replace( /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g, '' ) );
	});
})
</script>

<input type="text">
 

해당 input box에 한글이 입력되면 onBlur나 onKeyup시에 해당 한글을 공백으로 치환하여 한글을 입력 못하게 해주는 소스이다.

뭐, 문제점도 꾀 있는 소스라서, 사용자가 쓰기 편하게 해주려면, onBlur시에 한글이 있으면, 메세지창을 띄워주고 한글을 치환해주는 방식을 사용해야 하겠지만, 좀더 많은 기능을 보여주기 위해서 위처럼 소스를 구성해놓았다.

위에서 언급했던 모두 치환을 당담하는것은, 정규식의 g 부분이다. 해당위치에 오는 문자에 따라서
g : 문자열 내의 모든 패턴 체크
i : 대소문자를 구별하지 않음
m : 여러줄에 걸쳐서 체크
와 같이 된다.

참고로 한글 이외의 키보드에 있는 영문, 숫자, 특수문자, space는 쓰고 싶다면,

 
/[^A-Za-z0-9_\`\~\!\@\#\$\%\^\&\*\(\)\-\=\+\\\{\}\[\]\'\"\;\:\<\,\>\.\?\/\s]/gm;

와 같은 정규식을 쓰면 된다.

응용이라던가 하는것은 알아서 해보기 바란다.


List of Articles
번호 제목 날짜 조회 수
179 흐르는 배너 만들기2 2016.12.22 8361
178 화면 이동시에 레이어가 따라다니게 하기 2016.09.21 7141
177 행에 징검다리 스타일 입히기 (:odd, :even) 2021.03.31 210
176 항상 최신버전으로 사용하기 2021.03.26 283
175 항상 레이어가 정 가운데 위치하는 스크립트 2016.12.22 6908
174 하단 고정 레이어 스타일(CSS) 따라하기 2016.12.22 7732
173 페이지 이동 제어 - href, replace, pushState() 2018.09.06 2620
172 파일 업로드 방법, 이미지 파일 업로드 예제 소스 2017.03.06 9028
171 특정영역 제외하고 body 클릭 2018.09.28 3610
170 텍스트 필드에 기본글이 마우스 클릭하면 지워지게 하기 폼필드 소스 내에 아래 태그를 삽입한다. 2019.06.04 867
169 터치 디바이스 분기처리 2018.11.07 1278
168 키보드 이벤트가 발생한 객체의 id값 알아내기 2016.09.21 7530
167 최초 접속시 css와 script가 로딩되지 않을때 2021.03.25 322
166 체크박스 전체선택/해지 2019.06.04 780
165 체크박스 또는 라디오 버튼의 체크여부 변경하기 2016.09.21 6667
164 중복 없는 랜덤 2018.11.07 2017
163 제이쿼리에서 클래스(class) 이름 추가/삭제 2021.03.31 233
» 정규식, 한글 못쓰게 하기, replace all 2021.03.26 842
161 입력폼에 입력되는 값의 유효성 체크하기 두번째 file 2018.09.06 1835
160 이미지 회전, rotate(); 2020.11.25 1450
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved