> 웹 프론트엔드 > JS 튜토리얼 > Lookahead를 사용하여 정규 표현식의 문자 길이를 제한하는 방법은 무엇입니까?

Lookahead를 사용하여 정규 표현식의 문자 길이를 제한하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-03 16:50:11
원래의
502명이 탐색했습니다.

How to Restrict Character Length in Regular Expressions Using Lookahead?

정규 표현식의 문자 길이 제한

초기 정규 표현식에서는 문자 길이를 무제한으로 허용했지만 15자로 제한하려고 시도했을 때 수량자 {1,15}가 포함된 문자에서 오류가 발생했습니다. 이는 ^ 문자열 시작 앵커와 같은 앵커에는 수량자를 적용할 수 없기 때문입니다.

Lookahead를 사용한 솔루션

문자 길이를 효과적으로 제한하려면 문자열 시작 부분에 고정된 긍정적인 미리보기를 활용할 수 있습니다.

^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&amp;*;:,<>?()"]*
로그인 후 복사

이 미리보기는 후속 문자열은 1~15자(수량자 {1,15}로 지정)와 일치하고 일치 후 즉시 끝납니다. $ 앵커는 문자열의 끝을 나타냅니다.

수량자 제한 방지

정규식 끝에 수량자 사용(예: ^[a-zA-Z0-9]*[^$%^&*;:,<>?()"]{1,15}$, 두 번째 문자 클래스의 길이만 다음으로 잘못 제한합니다. 1~15자입니다. 전체 문자열의 길이는 제한되지 않습니다.

예측 방법 작동

미리보기(?=.{1,15}$)는 문자열 끝의 개행 문자($ 앵커로 인해)를 포함하여 후속 1~15자를 평가합니다. 이 조건이 충족되면 표현식은 true를 반환하고, 그렇지 않으면 false를 반환합니다.

개행 처리 시퀀스

입력에 개행 시퀀스가 ​​포함될 수 있는 경우 . 와일드카드를 [sS] 이식 가능한 모든 문자 구문으로 바꿀 수 있습니다.

^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&amp;*;:,<>?()"]*
로그인 후 복사

위 내용은 Lookahead를 사용하여 정규 표현식의 문자 길이를 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿