升级到rails 3和ruby 1.9.2后无效的多字节转义 - dtext ='[^ \\ x80]'

时间:2010-08-27 23:52:01

标签: ruby-on-rails regex

我正在将我的应用程序从rails 2升级到3,当我'需要'此文件具有电子邮件地址验证程序时,我收到了“无效的多字节转义”错误:

dtext = '[^\\\\x80]'
pattern = /\A#{dtext}\z/

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试使用:

pattern = /\A#{dtext}\z/, nil, 'n'

查看details on encodings and regexp了解更多信息。

我在encodings in Ruby上使用并推荐这篇精彩的文章。

答案 1 :(得分:0)

修改rfc822.rb文件并将addr_spec行更改为以下内容:

addr_spec = Regexp.new("#{local_part}\\x40#{domain}", nil, 'n')

那应该解决这个问题。我从另一个gem获得了解决方案,请参阅https://github.com/saepia/rfc822/blob/master/lib/rfc822.rb