정규식 문자 길이 제한 개선 방법
원래 정규 표현식에서는 문자 길이에 제한을 두지 않았습니다.
<code>var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$/</code>
문자 길이를 15자로 제한하려면 다음과 같이 표현식을 수정해 보세요.
<code>var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*${1,15}/</code>
수량자를 앵커에 직접 적용할 수 없기 때문에 오류가 발생합니다. 입력 문자열의 길이를 제한하는 올바른 방법은 시작 부분에 예측 어설션을 사용하는 것입니다.
<code>^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()\"']*$</code>
이 미리보기 어설션은 입력 문자열이 지정된 문자 범위와 일치하고 길이가 1~15자인지 확인하여 문자 길이 제한을 효과적으로 적용합니다.
끝에 제한적인 수량자를 사용하는 것과 비교하여(예: {1,15}) 미리보기 접근 방식을 사용하면 전체 입력 문자열의 길이를 제한할 수 있습니다. 수량자는 예견 어설션의 하위 패턴에 적용되어 문자열 시작 부분부터 필요한 문자 수와 일치하는지 확인합니다.
다음은 몇 가지 참고 사항입니다.
[a-zA-Z0-9]*
하위 패턴은 길이에 관계없이 일련의 문자 또는 숫자와 일치합니다. 이는 원래 표현식에 사용된 (a-z|A-Z|0-9)*
하위 패턴과 동일합니다. (?=.{1,15}$)
지정된 수의 문자가 문자열 끝에 있어야 함을 어설션하려면 $
앵커를 사용합니다. A
및 Z
대신 ^
및 $
앵커를 사용해야 합니다. 또한 입력 문자열에 개행 문자가 포함될 수 있는 경우 [sS]
이식 가능한 임의 문자 정규식 구문을 사용할 수 있습니다.
<code>^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()\"']*$</code>
이렇게 하면 줄 바꿈도 문자 길이 제한에 포함됩니다.
위 내용은 정규 표현식으로 문자 길이를 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!