将Javascript RegExp结果作为非字符串进行操作

将Javascript RegExp结果作为非字符串进行操作,javascript,regex,Javascript,Regex,显示Javascript代码要比提供复杂的解释容易得多: var html='' html.replace(/tabindex=“[0-9]+)”/g,'tabindex=“”+(“$1”*i)+'”) 在这段代码中,“$1”将始终是一个字符串,这意味着此RegExp将始终导致“tabindex=“NaN”。。。使用parseInt不起作用 是否可以将RegExp的响应强制转换为整数,以便对替换执行数学运算?替换参数: 但是,只有在没有解析器的情况下,才应该使用regexp来操作HTML。如果要

显示Javascript代码要比提供复杂的解释容易得多:

var html=''
html.replace(/tabindex=“[0-9]+)”/g,'tabindex=“”+(“$1”*i)+'”)

在这段代码中,“$1”将始终是一个字符串,这意味着此RegExp将始终导致“tabindex=“NaN”。。。使用parseInt不起作用

是否可以将RegExp的响应强制转换为整数,以便对替换执行数学运算?

替换参数:

但是,只有在没有解析器的情况下,才应该使用regexp来操作HTML。如果要在浏览器中运行此代码,则需要一个解析器。如果节点来自其他文档,请使用。如果节点位于同一文档中,请使用。两者都支持深度复制。

替换参数:


但是,只有在没有解析器的情况下,才应该使用regexp来操作HTML。如果要在浏览器中运行此代码,则需要一个解析器。如果节点来自其他文档,请使用。如果节点位于同一文档中,请使用。两者都支持深度复制。

CMS和outis已经为您提供了答案。出于好奇,您打算用这段代码做什么?我在DOM中克隆了一块HTML,并希望确保在克隆后正确更新属性。简单的东西,以上是一个更简单的例子,作为一个更好的例子。然后你可以使用简单的赋值,比如
newelement.tabindex=oldelement.tabindex*i
,你不必担心确切的HTML格式(例如IE的
innerHTML
返回你的
tabindex=2
,没有任何引号)。唯一的问题是,在IE中(哦,IE,再一次,我们多么爱你),分配
name
属性有一些问题。这是一个非常特殊的情况,其中较大的HTML块(很多元素)在JS中作为字符串提供,而不是在DOM中。使用简单的搜索和替换或RegExp比创建元素然后遍历各个子节点并更新它们要快得多——我首先编写了DOM操作,但Firebug中的速度慢了10倍,因此希望提高速度。CMS和outis已经给出了答案。出于好奇,您打算用这段代码做什么?我在DOM中克隆了一块HTML,并希望确保在克隆后正确更新属性。简单的东西,以上是一个更简单的例子,作为一个更好的例子。然后你可以使用简单的赋值,比如
newelement.tabindex=oldelement.tabindex*i
,你不必担心确切的HTML格式(例如IE的
innerHTML
返回你的
tabindex=2
,没有任何引号)。唯一的问题是,在IE中(哦,IE,再一次,我们多么爱你),分配
name
属性有一些问题。这是一个非常特殊的情况,其中较大的HTML块(很多元素)在JS中作为字符串提供,而不是在DOM中。使用简单的搜索和替换或RegExp比创建元素然后遍历不同的子节点并更新它们要快得多——我首先编写了DOM操作,但在Firebug中速度慢了10倍,因此希望提高速度。
html.replace(/tabindex="([0-9]+)"/g, function (all, tabindex) {
        return 'tabindex="' + (tabindex * i) + '"'
    });