development

정규식 문자 대괄호에 하이픈을 포함합니까?

big-blog 2021. 1. 6. 20:41
반응형

정규식 문자 대괄호에 하이픈을 포함합니까?


$.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

반응형