티스토리 뷰

정규식 사용하여 영문과 숫자가 아닐 경우 입력되지 않게 한다

<input type="text" onkeydown="onlyAlphabet(this)"  />
    
<script>
	function onlyAlphabet(ele) {
	  ele.value = ele.value.replace(/[^\\!-z]/gi,"");
  }
</script>

회원가입, 로그인 시에 영어와 숫자만을 받기 위해 여러가지 방법을 찾아 보았다. style에서 ime를 사용하는 방법은 크롬에서 지원하지 않고, key값을 이용하여 false를 리턴하는 방법 또한 크롬에서 먹히지 않았다.

작은 고집으로 정규식을 사용하고 싶지 않았는데 정규식이 제일 깔끔한 방법 인 것 같다.



주의할점

  • 함수 안에서 this를 사용하는 것은 window에서의 onlyAlphabet함수를 실행시키는 것이므로 this는 window가 된다. 따라서 element에서 this를 사용하여야 element의 onkeydown 함수의 onlyAlphabet함수가 실행되는 것이므로 이 때 this는 해당 element가 된다


참고자료

https://cjw0701.tistory.com/200

반응형

'JavaScript' 카테고리의 다른 글

callback과 promise의 차이점  (0) 2021.06.11
object의 Enumerable 설정하는 방법  (0) 2021.06.10
자바스크립트로 팝업창 구현  (0) 2019.07.08
JSON 이란  (1) 2019.03.31
javascript 상속 (prototype / class)  (0) 2019.03.21
댓글