基本上,我正在更新一个旧的web应用程序,使其兼容多浏览器。到处都是原始程序员使用过的地方-
document.all.element
据我所知,".all"只是IE,在IE 4中引入。IE 5中引入了符合标准的".getElementById"函数。我想将上述声明的实例更改为-
document.getElementById("element")
如何形成此正则表达式,特别是使用Visual Studio的"查找和替换"对话框?
在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')
我不确定这是否是我使用Visual Studio 2012 RC的问题,但使用大括号无法匹配任何内容。
我最终使用了find表达式-
document.all.([a-zA-Z0-9]+)
以及替换
document.getElementById("$1")
"$1"是指括号内的表达式。
谢谢你们的帮助。
搜索
[.]all[.]{:i}
并替换为
.getElementById("1")
点.
周围的方括号是为了确保它不会被解释为元字符(您可以使用.
)。:i
是Visual Studio的标识符的符号。
替换字符串中的1
引用了第一个标记的表达式(即{:i}
表达式),因此标识符将"粘贴"在双引号内。
我认为您不需要正则表达式。
只需在文本替换对话框
document.all.element
替换为document.getElementById