Custom regular expression i18n
我用的是3.2号铁轨。
我正在罗马尼亚本地化我的网站。在正则表达式中,regexp间隔[a-z]应按顺序包含以下字母:A,?,A、B、C等。
有没有一种方法可以告诉我的应用程序[a-z]应该是上面的列表,基于我的区域设置?
此外,大写"a".upcase不会导致"?"也有问题。.
或者,也许这些特性还没有在Rails中实现?
型
这不是Rails问题,[a-z]不需要包含非ASCII字符。在Ruby的例子中,[a-z]表示一个与连续的ASCII字母匹配的regex范围。
在Ruby中,string.upcase不需要依赖于区域设置。相反,您可以尝试使用unicodeutils gem,如下所示:
%gem安装unicode-utils
1 2 3 4 | #encoding: UTF-8 require 'unicode_utils' p UnicodeUtils.upcase('?', :ro) |
"?"
在转换字符串大小写时指定区域设置更有意义,因为例如:
1 2 | UnicodeUtils.upcase('i', :en) # is not equal to UnicodeUtils.upcase('i', :tr) |
号
型
我认为
1 2 | "?" =~ /\p{Latin}/ # => 0 |