在 RoR 中,如何使用 utf8 代码验证发布表单的中文或日文单词。
在GBK代码中,它使用[\u4e00-\u9fa5]+来验证中文单词。
在 Php 中,它使用 /^[\x{4e00}-\x{9fa5}]+$/u 来表示 utf-8 页面。
Ruby 1.8 对 UTF-8 字符串的支持很差。您需要在正则表达式中单独写入字节,而不是完整的代码:
>> "acentuação".scan(/\xC3\xA7/)
=> ["ç"]
为了匹配您指定的范围,表达式将变得有点复杂:
/([\x4E-\x9E][\x00-\xFF])|(\x9F[\x00-\xA5])/ # (untested)
这将在 Ruby 1.9 中得到改进, 尽管。
Edit:如注释中所述,unicode 字符 \u4E00-\u9FA5 仅映射到 UTF16-BE 编码中的上述表达式。 UTF8 编码可能不同。因此,您需要仔细分析映射,看看是否可以为 Ruby 1.8 找到一个字节匹配表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)