찾다

 >  Q&A  >  본문

Joi 유효성 검사에 문제를 일으키는 특수 문자

<p>텍스트 상자의 내용을 250단어로 제한하고 싶습니다. 이를 달성하기 위해 joi 유효성 검사를 사용하고 있습니다. 모든 문자(특수 문자 포함)를 계산해야 하며 250단어만 허용합니다. 그러나 다음과 같은 문제에 직면했습니다. </p> <올> <li><p>첫 번째 특수 문자가 나오자마자 3단어 후에도 "이 섹션은 250자를 초과할 수 없습니다"라는 조이 유효성 검사 오류가 발생합니다. </p> </li> <li><p>PDF에서 콘텐츠를 복사하여 붙여넣으면 화면이 정지됩니다. 그래서 내 조이 스키마에 문제가 있는 것 같아요. </p> </li> </ol> <pre class="brush:php;toolbar:false;">description1: Joi.string().regex(/^(([ws,."'()-]+)b[s,.] *){0,250}$/).options({ 언어: { string: { regex: { base: '이 부분은 250자를 초과할 수 없습니다.' } } } }).label("이 부분"),< ; <p>누구든지 저를 도와주실 수 있나요? </p>
P粉267791326P粉267791326459일 전561

모든 응답(1)나는 대답할 것이다

  • P粉916760429

    P粉9167604292023-09-01 00:35:05

    이 방법이 효과가 있을 수 있습니다:

    으아악

    는 원래 정규식에서 [a-zA-Z0-9_]w不同,特殊符号S匹配任何非空格字符。因为字符集Ss를 일치시키는 것과 완전히 다르기 때문에 치명적인 역추적과 관련된 문제를 피해야 합니다.

    설명:

    • s* 시작 부분에 공백이 0개 이상 있습니다. 이것들은 계산되지 않습니다.
    • (S+s+) 공백이 아닌 문자 1개 이상과 공백 문자 1개 이상으로 구성된 단어입니다.
    • {0,249} 최대 249회 반복
    • S* 선택적으로 끝에 추가 단어를 추가하세요. 공백으로 끝나서는 안 됩니다. 이것은 250번째 단어이므로 위의 줄 수는 250이 아닌 249가 되어야 합니다.

    마지막 단어 길이만큼만 뒤로 돌아가기 때문에 마지막 단어가 너무 길면 속도가 느려질 수 있습니다. 그러나 성장은 기하급수적으로 이루어질 수 없으므로 Joi가 붕괴되는 원인이 되어서는 안 됩니다.

    회신하다
    0
  • 취소회신하다