我有一个正则表达式,我改编自Michael Hartl的轨道书,我用来验证电子邮件地址
/\A([\w+\-]\.?)+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
我想在javascript中使用它进行验证,但它在那里不起作用,我似乎无法找出原因。我只是在这里转动轮子
所以上面的一个在Rails中工作,但在JS中不起作用。我已经找到了可以在JS中使用的其他表达式,但是我想尝试使用相同的表达式来保持它的一致性。
为了澄清,这是铁路方面:
email = "test@test.com"
return /\A([\w+\-]\.?)+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
这会返回true
并且在JS方面:
email = "test@test.com"
return /^\A([\w+\-]\.?)+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i.test( email );
这会返回false
任何指针?
答案 0 :(得分:0)
根据@WiktorStribiżew的评论,缺少的部分是改变正则表达式语法以使用JS,就像这样
module RouteModule
def self.user_has_active_chocolate(c_id, u_id)
chocolate_id = c_id
user_id = u_id
unless UserChocolate.where(id: chocolate_id).empty?
if UserChocolate.where(id: chocolate_id).last.active?
true
else
false
# BREAKS OVER HERE...
redirect_to "/user/new-chocolate/#{user_id}"
end
else
false
redirect_to "/admin"
end
end
end
我拿出了\ A和\ z,分别用\ ^和$替换了