정규식 문자 대괄호에 하이픈을 포함합니까?
$.validator.addMethod('AZ09_', function (value) {
return /^[a-zA-Z0-9.-_]+$/.test(value);
}, 'Only letters, numbers, and _-. are allowed');
내가 somehting을 사용할 때 test-123
하이픈이 유효하지 않은 것처럼 여전히 트리거됩니다. 나는 시도 \-
하고--
를 사용하여 이스케이프 \-
해도 좋지만 문자 클래스의 시작이나 끝에 넣어도됩니다. 이것은 당신을 위해 작동합니다.
/^[a-zA-Z0-9._-]+$/
하이픈을 사용하여 이스케이프하는 \-
것이 올바른 방법입니다.
표현식 /^[a-zA-Z0-9.\-_]+$/
이 하이픈을 허용 하는지 확인했습니다 . \w
클래스를 사용하여 /^[\w.\-]+$/
.
(표현식에서 하이픈을 마지막에 넣으면 범위의 일부가 될 수 없기 때문에 실제로 이스케이프 할 필요가 없지만 항상 이스케이프하는 습관을 들이고 싶을 수 있습니다.)
\-
-
문자 범위에서 이스케이프하도록 작동해야 합니다. 테스트하지 않았을 때 테스트 한 내용을 인용 할 수 있습니까? 작동하는 것처럼 보이기 때문에 : http://jsbin.com/odita3
\-아마도 서버에서 모든 것을 문자열로 전달했기 때문에 작동하지 않을 수 있습니다. 이 경우 서버 측 프로그램도 처리 할 수 있도록 먼저 \를 이스케이프해야합니다.
- 서버 측 문자열 : \\-
- 클라이언트 측 : \-
- 정규식 (덮개) :-
또는 간단하게 [] 대괄호의 및 뒤에 넣을 수 있습니다.
하이픈을 일치시키는보다 일반적인 방법은 하이픈과 대시 (따옴표없이 "\ p {Pd}")에 대한 문자 클래스를 사용하는 것입니다. 다양한 문화와 출처의 텍스트를 다루는 경우 한 문자가 아닌 더 많은 유형의 하이픈이 있다는 것을 알 수 있습니다. [] 표현식 안에 추가 할 수 있습니다.
일반적으로 -
정규식에서 하이픈 ( ) 문자를 사용 하는 경우 하이픈을 \-
이스케이프 처리 ( -
)하는 것과 하이픈을 이스케이프 처리하지 않는 것 ( ) 사이의 차이에 유의하는 것이 중요합니다 . 문자 자체가 아닌 하이픈은 정규식에서 범위를 지정하기 위해 구문 분석되기 때문입니다.
In the first case
, 이스케이프 된 하이픈 ( \-
)을 사용하면 regex는 예와 같이 하이픈과 만 일치합니다./^[+\-.]+$/
In the second case
예를 들어 /^[+-.]+$/
하이픈이 플러스와 점 사이에 있으므로 43 (더하기)과 46 (점) 사이의 ASCII 값을 가진 모든 문자와 일치하므로 여기에서 쉼표 (ASCII 값 44)를 측면으로 포함합니다. 효과.
참조 URL : https://stackoverflow.com/questions/3697202/include-a-hyphen-in-a-regex-character-bracket
'development' 카테고리의 다른 글
자바 스크립트에서 이미지가로드되기를 기다리는 중 (0) | 2021.01.06 |
---|---|
matplotlib에서 ticklabel과 축 사이에 공간을 어떻게 추가합니까? (0) | 2021.01.06 |
명령 행 인수로 프로그램 실행에 Ant 사용 (0) | 2021.01.06 |
Div 테이블 셀 세로 정렬이 작동하지 않음 (0) | 2021.01.06 |
여러 C 프로그램을 컴파일하기위한 Makefile? (0) | 2021.01.06 |