【问题标题】:Regex to bulk replace attributes[x] with getAttribute in HTML files正则表达式在 HTML 文件中用 getAttribute 批量替换属性 [x]
【发布时间】:2013-01-07 21:28:19
【问题描述】:

在一大堆 HTML 页面中,我需要像这样替换所有字符串:

language[0].attributes[24].value;

用这个:

language[0].getAttribute("attr"+24);

其中“24”可以是任意数字。

我认为我可以使用 Notepad++ 的 Find and Replace 和正则表达式来执行此操作,但经过多次试验和错误,到目前为止还没有运气。我不想手动执行此操作。

(这是因为,当我升级到 IE10 时,我支持的网页上的所有文本都失控了。根据定义,XML 属性似乎可以按任何顺序排列,而新版本的 IE 对它们重新排序。我现在需要通过名称而不是索引来引用属性。)

感谢您的帮助。

【问题讨论】:

    标签: javascript regex internet-explorer notepad++


    【解决方案1】:

    找到以下正则表达式:

    \.attributes\[(\d+)\]\.value
    

    并用

    替换它
    .getAttribute("attr"+\1)
    

    http://regexr.com?33b0j

    【讨论】:

      【解决方案2】:

      您应该在某些文本编辑器中使用一些通配符替换工具。我个人使用VS。 Word等MS-Office程序也有这种可能。

      【讨论】:

        【解决方案3】:

        查找内容:\.attribute\[(\d+)\]\.value;
        替换为:.getAttribute\("attr" + \1\);

        (我必须将我的 Notepad++ 版本的替换值中的括号转义为)

        【讨论】:

        • 由于 Notepad++,您不必转义括号,这是因为括号描述了正则表达式中的字符集。
        • 我说的是 replace 值而不是 find
        • 好的。感到困惑,因为您的替换值中没有任何括号,并认为您输入错误。
        【解决方案4】:

        用记事本++测试

        language\[0\].attributes\[\s*(\d+)\s*\].value;
        

        替换为

        language[0].getAttribute\("attr"+\1\);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-26
          • 2017-07-15
          • 1970-01-01
          • 2011-08-19
          • 2015-05-10
          • 2014-10-01
          相关资源
          最近更新 更多