我正在使用wkhtmltoimage实用程序,该实用程序不支持协议相对URL,例如:<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script>
我需要在Ruby中将其转换为:<script src="http://cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script>
。我想知道找到这些类型网址的最有效方法是什么,因为我无法弄清楚如何为它们编写正则表达式,然后将http:
添加到其中。
提前致谢。
答案 0 :(得分:0)
您可以使用perl:
perl -pi -e 's/src="\/\//src="http:\/\//' *
上述声明将替换目录中的所有模式。
答案 1 :(得分:0)
这里不需要使用Regexp
,只需使用HTML的HTML解析器和URI的URI解析器:
require 'nokogiri'
require 'uri'
doc = Nokogiri.HTML(<<-EOHTML)
<script
src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js">
</script>
EOHTML
doc.xpath('//script[@src]').each do |script|
uri = URI.parse(script['src'])
uri.scheme = 'http' if uri.scheme.nil?
script['src'] = uri.to_s
end