Angular/Angular
[ Angular ] 정규식 한글 입력 막기
shiro21
2022. 7. 15. 19:18
반응형
.HTML
<input type="text" [(ngModel)]="id" (keyup)="check('id')" (keydown)="keyCheck(id)" [maxlength]="12" />
가장먼저 실행되고, 길게 눌렀을때 연속적으로 실행하는 keydown을 사용했습니다.
keypress는 영어나 숫자로 변경해서 입력 할 때까지 적용되지 않고, keyup은 한글 완성이 되지 않았을 경우 남게 됩니다.
keydown, keypress, keyup 비교 확인하기
.TS
keyCheck(e: any) {
const exptext = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/;
console.log(exptext.test(this.id));
if(exptext.test(this.id)) {
this.id = this.id.replace(exptext, '');
}
}
정규식
// 영어만
const eng = /^[a-zA-Z]*$/;
// 숫자만
const num = /^[0-9]*$/;
// 영어 + 숫자
const engNum = /^[a-zA-Z0-9]*$/;
// 이메일
const email = /^[a-zA-Z0-9]+@[a-zA-Z0-9]+$/;
// 핸드폰
const phone = /^\d{2,3}-\d{3,4}-\d{4}$/;
// 주민등록번호
const resident = /\d{6} \- [1-4]\d{6}/;
// 8자리 이상 영문 + 숫자 + 특수문자 조합
const password = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$/;
반응형