显示Javascript代码要比提供复杂的解释容易得多:
var html = '<input tabindex="1" type="text">';
html.replace(/tabindex="([0-9]+)"/g, 'tabindex="' + ("$1" * i) + '"');
在此代码中,“$ 1”将始终为字符串,这意味着此RegExp将始终导致'tabindex =“NaN”'...使用parseInt不起作用。
是否可以将RegExp的响应转换为整数,以便我可以对替换执行数学处理?
答案 0 :(得分:4)
替换参数can be a function:
html.replace(/tabindex="([0-9]+)"/g, function (all, tabindex) {
return 'tabindex="' + (tabindex * i) + '"'
});
但是,如果您没有解析器,则应该只使用regexp来操作HTML。如果要在浏览器中运行此代码,那么您将拥有一个解析器。如果节点来自其他文档,请使用document.importNode
。如果节点位于同一文档中,请使用Node.cloneNode
。两者都支持深度复制。