패턴 속성 문제: HTML에서 정규식으로 유효성 해결
HTML에서 패턴 속성을 사용할 때 지정 시 오류가 발생할 수 있습니다. 'u' 플래그에는 작동하지만 'v' 플래그에는 작동하지 않는 정규식 패턴입니다. 이 문서에서는 문제를 자세히 살펴보고 해결책을 제공합니다.
문제
HTML에서 패턴 속성을 사용하는 동안 다음 콘솔 경고가 나타날 수 있습니다.
Pattern attribute value ^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$ is valid with the RegExp u flag, but not with the v flag: Uncaught SyntaxError: Invalid regular expression: /^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/v: Invalid character in character class.
설명
ECMAScript 2018에 도입된 'v' 플래그는 HTML 요소의 패턴 속성에 사용할 RegExp 객체를 컴파일할 때 자동으로 적용됩니다. 이는 제공된 패턴이 'v' 플래그가 활성화된 정규식으로 변환됨을 의미합니다.
'v' 플래그는 이스케이프 규칙에 대한 추가 제한을 적용합니다. 'u' 플래그와 달리 'v' 플래그는 문자 클래스 끝에서 리터럴 '-'를 이스케이프 처리하지 않은 상태로 두는 것을 허용하지 않습니다. 이는 'v' 플래그가 이스케이프 처리되지 않은 '-'와 충돌할 수 있는 문자 클래스 빼기 및 교차를 지원하기 때문입니다.
해결 방법
이 문제를 해결하려면 다음을 확인하세요. 'v' 플래그를 사용하면 문자 클래스 끝에 있는 '-'가 이스케이프됩니다. 예를 들어, 패턴의 수정된 버전은 다음과 같습니다.
^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$
Additional Notes
위 내용은 내 HTML 패턴 속성 Regex에서 \'문자 클래스에 잘못된 문자\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!