regex - Sublime Text 中使用 RegEx 进行高级查找和替换

标签 regex asp-classic replace sublimetext2

我有一个充满经典 ASP 遗留代码的目录,几乎所有文件都有与此类似的内容:

<input type="hidden" name="driverPayment" value="<% =driverPayment %>">

然后在代码中,一些 JavaScript 正在运行,并执行以下操作:

var x = document.getElementById('driverPayment')

这在 IE 中工作得很好,但当然在其他地方不起作用,因为没有定义 ID 属性。

修复方法是检查 1770 个文件并手动添加与输入上的名称属性匹配的 ID 属性。所以就这样吧:

<input type="hidden" name="driverPayment" id="driverPayment" value="<% =driverPayment %>">

有没有一种方法可以通过使用以下逻辑来自动化此过程:

  1. 获取带有 name 属性的输入元素
  2. 如果输入具有 id 属性,则移至下一个输入
  3. 否则,向输入添加一个 ID 属性,并为其指定一个与 name 属性值匹配的名称

我想对我拥有的 1770 Classic ASP 文件执行此操作。我正在使用 Sublime Text。

最佳答案

可以使用正则表达式来匹配。我的正则表达式不是很好,但以下应该可以工作。为其他人改进而感到高兴。我使用了 this question 中的一些正则表达式.

右键单击项目文件夹

选择“在文件夹中查找”选项

查找和替换选项出现在屏幕底部。选择正则表达式选项(最左侧)。

regex-find-and-replace

输入

<(?:input)\s+(?=[^>]*\bname\s*=)(?![^>]*\bid\s*=)[^>]*>?(name="driverPayment")

在查找字段

输入

id="driverPayment" name="driverPayment" 

在替换字段中

点击替换

关于regex - Sublime Text 中使用 RegEx 进行高级查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353580/

相关文章:

javascript - 带有服务器端 Javascript 的经典 ASP,在不同的文件中调用函数

javascript - 有没有办法使用 ASP 将命名空间添加到所有 html 标记?

r - 如何用 R 中另一个 tibble 的估算列替换 tibble 中的 NA 列

Java一次替换字符串中的多个不同子字符串(或以最有效的方式)

javascript - 原始 HTML 上的正则表达式

java - 正则表达式: find a number near to a given String

asp-classic - 在不同的端口号上访问 SQL(经典 ASP 连接字符串)

ios - 查找和替换术语

regex - 如何使用 C# 正则表达式的白名单拒绝名称(人和公司)?

python - 在python中分割数字后的字符串