正则表达式替换字符串的多个部分(在Visual Studio 2012中)

时间:2012-09-12 10:06:27

标签: visual-studio-2012

基本上我正在更新旧的Web应用程序以符合多浏览器。原始程序员使用的所有地方 -

document.all.element

据我所知,“。all”仅在IE中引入,在IE 4中引入。符合标准的“.getElementById”函数在IE 5中引入。我想将上述语句的实例更改为 -

document.getElementById("element")

如何构建此正则表达式,特别是使用Visual Studio的“查找和替换”对话框?

4 个答案:

答案 0 :(得分:4)

在Visual Studio 2010及更早版本中,正则表达式语法如下:

要使用{ }标记表达式,引用第一个标记以供替换使用\1

在您的情况下,您需要找到:

document\.all\.{[a-zA-Z0-9]+}

并替换为:

document.getElementById('\1')

在Visual Studio 2012中,正则表达式语法已更改为:

document\.all\.([a-zA-Z0-9]+)
document.getElementById('$1')

答案 1 :(得分:2)

我不确定这是否是我使用Visual Studio 2012 RC的问题,但使用大括号无法与任何内容匹配。

我最终使用了find表达式 -

document\.all\.([a-zA-Z0-9]+)

和替换

document.getElementById("$1")

“$ 1”指的是括号中的表达。

感谢您的帮助。

答案 2 :(得分:1)

搜索

[.]all[.]{:i}

并替换为

.getElementById("\1")

.周围的方括号是为了确保它不被解释为元字符(您可以使用\.代替)。 :i是Visual Studio的标识符的符号。

替换字符串中的\1引用第一个标记的表达式(即{:i}表达式),因此标识符将“粘贴”在双引号内。

答案 3 :(得分:0)

我认为你不需要正则表达式。

只需在文本替换对话框中将document.all.element替换为document.getElementById

即可