Visual studio 2012 替换字符串多个部分的正则表达式(在Visual Studio 2012中)
基本上,我正在更新一个旧的web应用程序,使其与多浏览器兼容。到处都是原始程序员使用过的地方-Visual studio 2012 替换字符串多个部分的正则表达式(在Visual Studio 2012中),visual-studio-2012,Visual Studio 2012,基本上,我正在更新一个旧的web应用程序,使其与多浏览器兼容。到处都是原始程序员使用过的地方- document.all.element 据我所知,“.all”只是IE,在IE 4中引入。IE5中引入了符合标准的“.getElementById”函数。我想将上述声明的实例更改为- document.getElementById("element") 我如何形成这个正则表达式,特别是使用Visual Studio的“查找并替换”对话框?我认为您不需要正则表达式 在Visual Studio 2
document.all.element
据我所知,“.all”只是IE,在IE 4中引入。IE5中引入了符合标准的“.getElementById”函数。我想将上述声明的实例更改为-
document.getElementById("element")
我如何形成这个正则表达式,特别是使用Visual Studio的“查找并替换”对话框?我认为您不需要正则表达式
在Visual Studio 2010及更早版本的文本替换对话框中,只需将
document.all.element
替换为document.getElementById
,正则表达式语法如下:
要标记表达式,请使用{}
,要引用第一个标记以替换使用\1
在您的情况下,您需要找到:
document\.all\.{[a-zA-Z0-9]+}
并替换为:
document.getElementById('\1')
在Visual Studio 2012中,正则表达式语法已更改为:
document\.all\.([a-zA-Z0-9]+)
document.getElementById('$1')
寻找
[.]all[.]{:i}
并替换为
.getElementById("\1")
圆点
周围的方括号用于确保它不会被解释为元字符(您可以使用\.
)。:i
是Visual Studio的标识符符号
替换字符串中的
\1
引用了第一个标记的表达式(即{:i}
表达式),因此标识符将“粘贴”在双引号内。我不确定使用Visual Studio 2012 RC是否有问题,但使用大括号无法匹配任何内容
我最后使用了find表达式-
document\.all\.([a-zA-Z0-9]+)
以及替代品
document.getElementById("$1")
“$1”指括号内的表达式
谢谢你们的帮助。可能是这样,我已经习惯了VS 2010,而你们并没有提到你们在2012年。我本来会提到我在使用2012年,但在这种情况下,我没想到这会有什么不同。现在,我不确定该怎么做,要么编辑我的问题以反映情况(并将我的答案标记为正确),要么保留泛型,因为您的答案(以及dasblinkenlight的答案)对于早期版本的visual studio是正确的。我也不希望这会有所不同,请随意接受您的答案;)在这种情况下不起作用,我需要用括号和引号包围“元素”部分。好的,我明白了。您可以通过索引访问document.all.elements,这不是一个函数是的,
元素
是文档的一部分。all.element
是元素名称。所以我想保留它,因为它与元素id相同。Visual Studio 2012的标记不是()
而不是{}
?这是VisualStudio的旧版本。