我正在使用此脚本解析HTML标记,以便将它们转换为<%= image_tag ...%>
我的正则表达式和测试用例在这里:http://rubular.com/r/sBPAaWSdGQ
我想捕获src =“captureme.jpg”以及所有其他属性,以便我可以移植它们。
我有正则表达式开始它还没有完全 - 我需要一些东西来捕获所有属性...即class,id 以下是我到目前为止的情况。
class ToImageTag
def self.convert
Dir.glob("app/views/**/*").each do |filename|
next unless filename =~ /\.html\.erb$/
file = File.new(filename, "rw")
file.each_line do |line|
source = /(<\s*img\s*.*src=(.*?)(>|\/>))/.match(line)
source = src[1].split.first
image_tag = "<%= image_tag(\"#{source}\")"
line.gsub!(src[0], image_tag)
end
file.close
end
rescue => err
puts "Exception: #{err}"
end
end
答案 0 :(得分:1)
您使用的是javascript吗?如果是这样,你可以使用jQuery来做你想做的事。
var src = new Array();
$('img').each(function(index, element) {
src[index] = $(element).attr('src');
});
我没有试过这个,所以它可能没有bug。
如果您不使用javascript,那么有很多DOM解析器可以为您简化此任务。我不认为使用正则表达式是最好的选择。