php - 这个正则这样写有问题吗?
黄舟
黄舟 2017-04-11 09:18:02
[PHP讨论组]

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

$reg1='/\w{20,100}/';
$a=str_replace(" ","",$_POST['name']);
if(preg_match($reg1, $a)){
                echo "合法";
              }else{
                echo "不合法";
              }
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网
$reg1='/^.{20,100}$/u';
  1. \w 只能匹配 字母+数字+下划线

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

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

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

你试试看,中文也可以

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号