lua quick-x 区分 中文和中文符号

最近在做用户名验证,有个要求就是 用户只能输入汉字  那么 汉字的标点符号 就必须排除出去了

lua 代码 如下


网上了解到  中文的ASC码 区间是   0xe4b880 - 0xe9bfbf 也就是228 184 128 -- 233 191 191

function M:checkWord(str)
    if #str > 0 and #str/3%1 == 0 then
        --判断是否全部为中文
        for i=1,#str,3 do
            local tmp = string.byte(str, i)
            print(" ----   ----",tmp)--230
            if tmp >= 240 or tmp < 224 then
                return false
            end
        end
        --判断中文中是否有中文标点符号
        for i=1,#str,3 do
            local tmp1 = string.byte(str, i)
            local tmp2 = string.byte(str, i+1)
            local tmp3 = string.byte(str, i+2)
            print("mp1,mp2,mp3",tmp1,tmp2,tmp3)
            --228 184 128 -- 233 191 191
            if tmp1 < 228 or tmp1 > 233 then
                return false
            elseif tmp1 == 228 then
                if tmp2 < 184 then
                    return false
                elseif tmp2 == 184 then
                    if tmp3 < 128 then
                        return false
                    end
                end
            elseif tmp1 == 233 then
                if tmp2 > 191 then
                    return false
                elseif tmp2 == 191 then
                    if tmp3 >191 then
                        return false
                    end
                end            
            end
        end
        return true
    end
    return false
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值