regex Rails Regular Expresssion Error With Multiline Anchors错误[重复]

6ss1mwsb  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(78)

此问题在此处已有答案

The provided regular expression is using multiline anchors (^ or $)(1个答案)
上个月关门了。
我在Rails代码中有以下正则表达式:

validates :what_is_the_break_divers_creed, 
format: { with: /^No[\s]*Rules[\s]*\.?[\s]*No[\s]*Excuses[\s]*\.?[\s]*No[\s]*Regrets[\s]*\.?\z/i }

字符串
我收到以下错误:

The provided regular expression is using multiline anchors (^ or $), 
which may present a security risk. Did you mean to use \A and \z, 
or forgot to add the :multiline => true option?


我确实有\z标记,但它与/i标记冲突吗?您是否看到我们所做的这个正则表达式有什么错误?为什么它认为我们在使用多行锚点-是吗?\A\Z能解决这个问题吗?我应该删除^吗?看起来可能会,但我不能肯定地说,因为我们正在研究的同一模型中的另一个问题。
我在S.O.上阅读了许多其他rails regex问题,但似乎没有找到一个与上述情况完全匹配的问题。
谢谢您的帮助!

zxlwwiss

zxlwwiss1#

不知道为什么,但下面的工作。我必须做到以下两点才能让它工作:
a)将枚举更改为:

enum status: { Submitted: 0, Accepted: 1, Refused: 2, NeedsRevision: 3, Edited: 4 }, _prefix: true

字符串
B)改变正则表达式以包括\A\z * 并 * 从前面删除^,如下所示:

validates :what_is_the_break_divers_creed, 
 format: { with: /No[\s]*Rules[\s]*\.?[\s]*No[\s]*Excuses[\s]*\.?[\s]*No[\s]*Regrets[\s]*\.?\A\z/i }


我还没有检查正则表达式是否真的可以工作,但至少表单又可以工作了。但奇怪的是我不知道为什么错误的正则表达式代码会干扰_prefix: true吗?一旦我修复了正则表达式,_prefix: true代码就可以工作了吗?
但我仍然不清楚为什么这个枚举冲突错误出现在第一位...有人知道吗?

相关问题