• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua正则表达式如何匹配中文

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 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 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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
lua颜色转化处理发布时间:2022-07-22
下一篇:
ultraedit支持lua发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap