2017-09-04 5 views
-1

나는 다음과 같은 입력 양식 컨트롤이 있습니다NG 패턴

: 만이 기호를 허용하려면이 입력에 대한

PASSWORD = /^[[email protected]#$%^&*()+<>]{1,8}$/; 

: 컨트롤러

input.form-control(
    ng-model='controller.password' 
    ng-minlength='1' 
    ng-maxlength='8' 
    name='password' 
    type="{{ controller.passwordShowType }}" 
    ng-pattern='controller.PASSWORD' 
    required 
) 

'[email protected]#$%^&*()-+<>ABCDEFGHIJKLMNOP1234567890' 

위와 같이 정규 표현식을 사용하면 ','또는 '.'을 입력 할 수 있습니다. 기호. 이 작업을 수행하기위한 올바른 정규 표현식은 무엇입니까?

답변

1

정규식의 문제는 대괄호 (문자 집합) 안에 [email protected]을 사용한다는 것입니다. Regex는 "! 문자와 @"(char code 33 - 64) 사이의 모든 문자를 매치하고 "[! - @]를 사용하지 말 것"이라고 말하려고합니다. 문자 집합의 처음이나 끝에 하이픈을 배치하거나 백 슬래시로 이스케이프합니다.

은]

http://www.regular-expressions.info/charclass.html 대부분의 정규식 맛, 문자 클래스 내부에서만 특수 문자 나 메타 문자가 닫는 대괄호이다 또한 백 슬래시 \, 캐럿^및 하이픈을 참조하십시오 -.

기본적으로 하이픈은 유효하지 않은 곳에 배치하거나 이스케이프 처리해야합니다.

http://regexr.com/에 정규식을 입력하여 정규식 구문 강조 표시를 할 수도 있습니다. 하이픈의 색상이 다르게 보일 때 오류가 명확하게 나타납니다.