php判断字符串长度问题

帮忙看看下面代码是否无误

if (mb_strlen($City,'utf-8')<2 or mb_strlen($City,'utf-8')>30)
{
exit("请选择城市!");
}
本意是不让字符串小于2个字符,并且不大于30个字符

这样的写法有误吗? 有更标准的写法吗?请高手指点,非常感谢!

if(!preg_match("/.{2,30}/",$City)) {
    exit("请选择城市!");
}

这个是正则表达式的写法,不懂的话建议你学习下正则表达式,开发实用性很高


前后/ 是起始结束符号

. 代表任意字符

{2,30} 前一个内容2次 ~ 30次

追问

老兄你这不对啊,一个中文字符还是等于3个字节,直接被卡

追答if (! preg_match ( "/^[\x{4e00}-\x{9fa5}]{2,30}$/u", $city )){

}

这个是判断中文的,但是必须要UTF-8

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网