gpt4 book ai didi

ruby-on-rails - Ruby 动态正则表达式条件

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:13 24 4
gpt4 key购买 nike

我想在 Controller (RoR) 上制作一个正则表达式。我试过这段代码:

  @widget_check = ClanTemplatesWidget.find(params[:id])
unless params[:config].blank?
#@widget_check.config in database value = [{"input":"string","name":"code", "label":"Code clan","validation":"^([#][A-Z0-9]{7})$"}]
JSON.parse(@widget_check.config).each do |config,i|
regexp = Regexp.new(config["validation"])
if regexp.match(params[:config][config["name"]])
@error = 0
else
@error = 1
end
end
@widget.config = params[:config].to_json
end

有关信息,我的数据在数据库中。如果我检查我有两个参数:

配置["验证"] =/^([#][A-Z0-9]{8})$/

params[:config][config["name"]] = #2YL9GR9R

如果我用数据重写我的代码,它工作正常(就像那样):

if /^([#][A-Z0-9]{8})$/.match("#2YL9GR9R")
@error = 0
else
@error = 1
end

最佳答案

您的 config["validation"] 包含一个看起来像正则表达式的字符串,但实际上不是。但是你可以用字符串构建一个正则表达式:

regexp = Regexp.new(config["validation"])
regexp.match(params[:config][config["name"]])

由于 Regexp.new 需要一个没有周围 /.../ 的字符串,您可能只想忽略它们。

关于ruby-on-rails - Ruby 动态正则表达式条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39992225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com