当前位置:  开发笔记 > 编程语言 > 正文

如何在ruby中使用regex for utf8

如何解决《如何在ruby中使用regexforutf8》经验,为你挑选了1个好方法。

在RoR中,如何使用utf8代码验证中文或日语单词的发布表单.

在GBK代码中,它使用[\ u4e00-\u9fa5] +来验证中文单词.在Php中,它使用/ ^ [\ x {4e00} - \x {9}} + $/u来表示utf-8页面.



1> Rômulo Cecco..:

Ruby 1.8对UTF-8字符串的支持很差.您需要在正则表达式中单独编写字节,而不是完整代码:

>> "acentuação".scan(/\xC3\xA7/)
=> ["ç"]    

要匹配您指定的范围,表达式将变得有点复杂:

/([\x4E-\x9E][\x00-\xFF])|(\x9F[\x00-\xA5])/  # (untested)

不过,这将在Ruby 1.9中得到改进.

编辑:如评论中所述,unicode字符\ u4E00-\u9FA5仅映射到UTF16-BE编码中的上述表达式.UTF8编码可能不同.因此,您需要仔细分析映射,看看是否可以为Ruby 1.8提供字节匹配表达式.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有