Egal ob ich Englisch oder Chinesisch eingebe, warum wird mir immer angezeigt, dass es illegal ist?
<code>$reg1='/\w{20,100}/'; $a=str_replace(" ","",$_POST['name']); if(preg_match($reg1, $a)){ echo "合法"; }else{ echo "不合法"; }</code>
Egal ob ich Englisch oder Chinesisch eingebe, warum wird mir immer angezeigt, dass es illegal ist?
<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>
w kann nur Buchstaben, Zahlen und Unterstriche finden
Ohne die Einschränkung ^ $ ist es immer wahr, solange es mehr als 20 Zeichen gibt. Beispielsweise sind auch 1000 A wahr
u-Modifikator macht die niedrigere Version von PHP chinesisch-freundlich. Ich habe PHP7 getestet und es ist das Gleiche, ob u hinzugefügt wird oder nicht.
<code>$reg1='/([\x{4e00}-\x{9fa5}]|\w){20,100}$/u'; </code>
Sie können es ausprobieren, Chinesisch ist auch verfügbar