html - 获取 html 并从 url 中删除参数
问题描述
我正在尝试创建一个辅助方法来解析由 trix 富文本编辑器生成的 url,它将私有 url 返回到我的 aws,但需要是公共的。
我一直在尝试split
删除不需要的 html 片段,但我无法正确获取 Ruby 代码。要点显示了我一直在尝试做的响应和方法。
解决方案
如果我正确理解您的问题,您想删除一串 html 中所有 URL 的部分查询参数,对吗?
我建议您首先摆脱 HTML 的特殊字符。例如通过使用 Nokogiri。假设我们在 html 中有html_string
:
html_unescaped_string = Nokogiri::HTML.fragment(html_string).to_s
我不确定您真正想从 URL 中删除什么。但是让我们假设您想从 URL 中删除所有查询参数,其中右侧包括'AWS'
(Eg what_ever=bla_AWS_bla
)。
你可以用这样的函数来做到这一点:
sanitizer = Proc.new do |uri_string|
URI.parse(uri_string).tap do |uri|
new_params = CGI.parse(uri.query).transform_values do |values|
values.reject { |value| value.include?("AWS") }
end
new_params.reject! { |_k, v| !v.empty? }
uri.query = new_params.empty? ? nil : URI.encode_www_form(new_params)
end.to_s
end
要在字符串中查找 URL,您可以使用 nice URI.regexp
。有了这个,你可以这样做:
html_unescaped_string.gsub(URI.regexp, &sanitizer)
我希望这会有所帮助...
推荐阅读
- python - Tensorflow 精度指标未初始化
- java - 遍历多个数组列表并获取元素
- reactjs - 我正在上有关创建 Slack 聊天的视频课程,现在我遇到了一些问题
- .htaccess - Htacess 多语言
- python - Dlib 面点出现在 thresh 中
- swift - 如何将 Blender 制作的动画加载到 ARKit?
- python - Python; 使用套接字时如何解决 ConnectionRefusedError
- sql - postgresql 查询中的问题
- java - 无法使用 java 代码执行 Jmeter
- python - 为什么我在 python 列表(递归)上收到列表错误?