首頁  >  文章  >  後端開發  >  這個正則這樣寫有問題嗎?

這個正則這樣寫有問題嗎?

WBOY
WBOY原創
2016-08-04 09:20:411102瀏覽

不管輸入英文還是中文 為什麼老是提示不合法呢?

<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>

你試試看,中文也可以

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn