영어로 입력해도, 중국어로 입력해도 왜 항상 불법이라는 메시지가 뜨나요?
<code>$reg1='/\w{20,100}/'; $a=str_replace(" ","",$_POST['name']); if(preg_match($reg1, $a)){ echo "合法"; }else{ echo "不合法"; }</code>
영어로 입력해도, 중국어로 입력해도 왜 항상 불법이라는 메시지가 뜨나요?
<code>$reg1='/\w{20,100}/'; $a=str_replace(" ","",$_POST['name']); if(preg_match($reg1, $a)){ echo "合法"; }else{ echo "不合法"; }</code>
<code class="php">$reg1='/^.{20,100}$/u';</code>
문자, 숫자, 밑줄만 일치시킬 수 있습니다
^ $ 제한이 없으면 20자 이상이면 항상 true입니다. 예를 들어 1000개의 a도 true입니다.
u 수정자는 php의 하위 버전을 중국어 친화적으로 만듭니다. php7에서 테스트했는데 u가 추가되었는지 여부는 중요하지 않습니다.
<code>$reg1='/([\x{4e00}-\x{9fa5}]|\w){20,100}$/u'; </code>
해보시면 됩니다. 중국어도 가능합니다