问题:我的客户端栏杆表单输入格式验证不适用于正则表达式的设置方式。
我有以下Rails表单输入:
<%= form.text_field :twitter_link,
class: "form-control",
required: true,
pattern: "^(?:https?:\/\/)?(?:(?:www|m)\.)?twitter\.com\/\w+\/status\/\d+(?:\/\/?)?$",
title: "Twitter Comment URL" %>
当我输入正确的格式时,它将无法验证,并显示“输入正确的格式”消息。
我模型中的以下正则表达式可验证该参数:
/\A^(?:https?:\/\/)?(?:(?:www|m)\.)?twitter\.com\/\w+\/status\/\d+(?:\/\/?)?\z/
如您所见,我在模型验证端进行了一些更改,以查看它是否有效。我尝试了其他一些方法,但没有解决。
可以很好地进行模型验证,但不能在客户端工作。我需要更改使其正常工作吗?
我正在进行客户端验证,因此可以为单个text_field提供自定义消息,而无需刷新或重定向。任何人,由于我有3种深度的嵌套表单,因此遇到了使警报显示为flash.now的问题,而无需使用普通的flash重新加载页面。不知道是什么问题,但这似乎是一个不错的选择。
如何解决此问题,使正则表达式可以与输入的text_field一起使用?
答案 0 :(得分:0)
使用单引号而不是双引号似乎可以解决问题。
<%= form.text_field :twitter_link,
class: "form-control",
required: true,
pattern: '^(?:https?:\/\/)?(?:(?:www|m)\.)?twitter\.com\/\w+\/status\/\d+(?:\/\/?)?$',
title: "Twitter Comment URL" %>
不知道为什么我以前没有尝试过,因为过去我遇到过双重和单一的类似问题