基本上我正在更新旧的Web应用程序以符合多浏览器。原始程序员使用的所有地方 -
document.all.element
据我所知,“。all”仅在IE中引入,在IE 4中引入。符合标准的“.getElementById”函数在IE 5中引入。我想将上述语句的实例更改为 -
document.getElementById("element")
如何构建此正则表达式,特别是使用Visual Studio的“查找和替换”对话框?
答案 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