정규 표현식에서 문자 길이 강제 적용
정규식에는 길이 제한이 필요한 경우가 많습니다. 그것들이 없으면 정규식은 모든 길이의 문자열과 일치합니다. 수량자는 해결책처럼 보이지만(예: {1,15}
) 전체 문자열에서 직접 작동하지는 않습니다. 수량자는 바로 앞의 요소에만 영향을 미치기 때문입니다.
예를 들어 다음 시도는 실패합니다.
<code class="language-javascript">var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,?()""']*${1,15}/ // Error!</code>
예측 솔루션
올바른 접근 방식은 긍정적인 예측 주장을 활용합니다.
<code class="language-javascript">^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
예측 이해
(?=.{1,15}$)
이 핵심입니다. 이 긍정적 예측은 전체 문자열(처음 ^
부터 끝까지 $
까지)에 1~15자(.{1,15}
)가 포함되어 있다고 주장합니다. 어떤 문자도 사용하지 않습니다. 상태만 확인합니다. 나머지 정규식 [a-zA-Z0-9]*[^$%^&*;:,?()""']*$
은 해당 길이 제약 조건 내에서 허용되는 문자와 일치합니다.
줄바꿈 처리
문자열에 개행 문자가 포함될 수 있는 경우 보다 강력한 문자 클래스를 사용하여 개행을 포함한 모든 문자와 일치시키세요.
<code class="language-javascript">^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
[sS]
은 공백 또는 공백이 아닌 문자와 일치합니다. 이렇게 하면 여러 줄 입력 시에도 길이 확인이 올바르게 작동합니다. 이는 정규식에서 문자 길이 제한을 적용하는 안정적인 방법을 제공합니다.
위 내용은 정규식에서 문자 길이 제한을 어떻게 적용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!