Heim  >  Artikel  >  Backend-Entwicklung  >  这个正则这样写有问题吗?

这个正则这样写有问题吗?

WBOY
WBOYOriginal
2016-08-04 09:20:411102Durchsuche

不管输入英文还是中文 为什么老是提示不合法呢?

<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>
  1. \w 只能匹配 字母+数字+下划线

  2. 不加 ^ $ 限制的话,就变成只要有20以上的字符永远成立了,比如1000个a也成立

  3. u 修饰符,让低版本 php 中文友好,php7我测试了,加不加 u 都一样。

<code>$reg1='/([\x{4e00}-\x{9fa5}]|\w){20,100}$/u';
</code>

你试试看,中文也可以

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn