zoukankan      html  css  js  c++  java
  • lua正则表达式如何匹配中文

     1 function CheckChinese(s) 
     2     local ret = {};
     3     local f = '[%z1-127194-244][128-191]*';
     4     local line, lastLine, isBreak = '', false, false;
     5     for v in s:gfind(f) do
     6         table.insert(ret, {c=v,isChinese=(#v~=1)});
     7     end
     8     return ret;
     9 end
    10 for k, v in ipairs(CheckChinese('a中文b+')) do 
    11     print(k,v.c,#v.c,v.isChinese);
    12 end
    13 -------------------
    14 1    a    1    false
    15 23    true
    16 33    true
    17 4    b    1    false
    18 5    +    1    false

    贴一段匹配中英文混合输入的代码

     1 function dlg:onBtnOKClick()
     2     local input = self:getInputNewContent()
     3     if input == "" then 
     4         flytip("输入不能为空")
     5         return
     6     end
     7     if self.pattern then
     8         if self.isContainChinese then
     9             local charCount = 0
    10             for i, v in ipairs(self:CheckChinese(input)) do 
    11                 if v.isChinese then
    12                     charCount = charCount + 2
    13                 else
    14                     charCount = charCount + 1
    15                     if string.find(v.c, self.pattern) == nil then
    16                         flytip("抱歉,您输入的内容含有非法字符或屏蔽词,请重新输入。")
    17                         return
    18                     end
    19                 end
    20             end
    21             if self.characterLimit then
    22                 if charCount > self.characterLimit then
    23                     flytip("抱歉,您输入的字符长度有误,请重新输入。")
    24                     return
    25                 end
    26             end
    27         else 
    28             if string.find(input, self.pattern) == nil then
    29                 flytip("抱歉,您输入的内容含有非法字符或屏蔽词,请重新输入。")
    30                 return
    31             end
    32         end
    33     end
    34     
    35     self:Hide()
    36     if self._onOK then
    37         self._onOK()
    38     end
    39 end
  • 相关阅读:
    postfix队列管理
    fdisk添加磁盘
    postfix日志分析pflogsumm
    ioctl接口内容操作
    linux 路由表设置 之 route 指令详解
    手把手教你用 Strace 诊断问题
    rtsp学习----海康RTSP客户端连接深入分析
    栈回溯技术
    objdump命令
    linux中的strip命令简介------给文件脱衣服
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/7428876.html
Copyright © 2011-2022 走看看