有人能给我 87 岁老爸一个神奇的答案吗?多年来,至少 10 年来,他一直使用以下简单的 javascript 代码从主页打开一个新窗口,如下所示:
<a href="javascript:openWin12('videok.html')">
但最后我成功说服他停止使用此代码,因为它会弄乱 Xenu 搜索结果,而且我厌倦了浏览他的网站时弹出的新窗口。因此,我建议他从现在起使用此代码打开新选项卡或页面,而不是新窗口,如下所示:
<a target="_blank" class="y" href="videok.html">
他最终非常喜欢这个新代码,以至于他想将他网站上的所有 javascript 代码替换为数百页中的这一行(几百甚至几千行)代码,所以现在我正试图找到一种方法来在 Notepad++ 或 MB-Search&Replace 中为他做到这一点。
因此,任务如下:
从理论上讲,该脚本如下所示:
<a href="javascript:openWin12('videok.html')">
code1 通配符文本 code2 code3
其中代码1=<a href="javascript:openWin12('
widcardtext = videok.html
code2 = ')
code3 = ">
其中 code1 应替换为
<a target="_blank" class="y" href="
wildcardtext 应该保持不变,
并且 code2 应该被删除
code3 应该保留
顺便说一下,这是他的网页,可以证明我的故事是真实的:
www.lezo.hu
答案1
您应该能够使用 notepad++ 中的正则表达式来执行此操作。
寻找:
<a href="javascript:openWin12\('([^)]+)'\)">
用。。。来代替:
<a target="_blank" class="y" href="\1">
如果您使用“在文件中查找”,您可以选择对整个目录树执行此操作。
这是如何运作的:
如果您不熟悉正则表达式,它们是一种用于查找(和替换)文本的小型编程语言。它的神奇之处在于:
\('([^)]+)'\)
这说明,
\(
说找到一个(
,\
是需要的,因为(
是特殊的。- 然后
(
说开始一个捕获组。这用于替换。 [^)]+
说找到一个或多个除了)
)
结束捕获组\)
匹配)
然后在替换中\1
说从捕获组中取出文本并放入替换的文本中。
答案2
你可以给查找和替换试试吧。它有一个简单的用户界面。我经常用它来搜索已更改且需要编辑的脚本中的 UNC 路径 - 对于像我这样总是难以使用 RegExp 的人而言,这是一个完美的工具 ;)