博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lua正则表达式如何匹配中文
阅读量:5972 次
发布时间:2019-06-19

本文共 1735 字,大约阅读时间需要 5 分钟。

1 function CheckChinese(s)  2     local ret = {}; 3     local f = '[%z\1-\127\194-\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 end10 for k, v in ipairs(CheckChinese('a中文b+')) do 11     print(k,v.c,#v.c,v.isChinese);12 end13 -------------------14 1    a    1    false15 2    中    3    true16 3    文    3    true17 4    b    1    false18 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 = 010             for i, v in ipairs(self:CheckChinese(input)) do 11                 if v.isChinese then12                     charCount = charCount + 213                 else14                     charCount = charCount + 115                     if string.find(v.c, self.pattern) == nil then16                         flytip("抱歉,您输入的内容含有非法字符或屏蔽词,请重新输入。")17                         return18                     end19                 end20             end21             if self.characterLimit then22                 if charCount > self.characterLimit then23                     flytip("抱歉,您输入的字符长度有误,请重新输入。")24                     return25                 end26             end27         else 28             if string.find(input, self.pattern) == nil then29                 flytip("抱歉,您输入的内容含有非法字符或屏蔽词,请重新输入。")30                 return31             end32         end33     end34     35     self:Hide()36     if self._onOK then37         self._onOK()38     end39 end

 

转载地址:http://qwzox.baihongyu.com/

你可能感兴趣的文章
滑动窗口最大值的golang实现
查看>>
会计的思考(17):还原会计报表的企业个性之一
查看>>
java对象初始化顺序的简单验证
查看>>
[CF452E]Three strings
查看>>
获取指定进程所对应的可执行(EXE)文件全路径(代码)
查看>>
ORA-01722:无效数字
查看>>
搭建golang+vscode开发环境
查看>>
C#占位符
查看>>
java面试-JVM调优和参数配置
查看>>
常用的激活函数
查看>>
sqlcmd
查看>>
Excel 已经检测到"XXX.xsl"是SYLK文件,但是不能将其加载的问题
查看>>
(基础篇)PHP获取时间、时间戳的各种格式写法汇总
查看>>
浅析面向对象开发
查看>>
Hystrix降级逻辑中如何获取触发的异常
查看>>
【跃迁之路】【535天】程序员高效学习方法论探索系列(实验阶段292-2018.07.25)...
查看>>
mac系统下git、mysql、nginx、php的环境搭建
查看>>
JavaScript面向对象编程——Array类型
查看>>
让IE兼容background-size的方法_background-size ie下使用
查看>>
中国发布自主开发的域名系统基础软件 “红枫”
查看>>