Javascript 需要简单的Perl脚本帮助

Javascript 需要简单的Perl脚本帮助,javascript,perl,Javascript,Perl,我希望创建一个perl脚本,我将在JavaScript文件上运行该脚本,以自动更改('),从而破坏脚本 例如: file.js document.writeln('&#187; <a href="/LINK1" TARGET="_blank">Lorem ipsum lorem 1</a><br>'); document.writeln('&#187; <a href="/LINK2" TARGET="_blank">Lorem

我希望创建一个perl脚本,我将在JavaScript文件上运行该脚本,以自动更改('),从而破坏脚本

例如:

file.js

document.writeln('&#187; <a href="/LINK1" TARGET="_blank">Lorem ipsum lorem 1</a><br>');

document.writeln('&#187; <a href="/LINK2" TARGET="_blank">Lorem ipsum lor'em x em 2</a><br>');

document.writeln('&#187; <a href="/LINK3" TARGET="_blank">Lorem ipsum lorem 3</a><br>');
document.writeln('»;
); 书面文件('»;
'); 书面文件('»;
');

第二行“Lorem ipsum lor'em x em 2”包含一个单引号,该引号将由脚本删除。剩下的单引号会像“document.writeln(””

一样出现。最简单的方法是替换所有的
,然后替换回安全的,大致如下:

s/'/\\'/g; # replace all single quotes
s/document.writeln(\\'/document.writeln('/g; # revert safe occurrences 

显然,这样的解决方案是一个快速而肮脏的解决方案,只有在您能够控制输入的情况下才能起作用,如果输入格式不为人所知,则会失败得很惨。

尝试以下正则表达式:

$data =~ s/
    (?<!   # negative look-behind
        \( #   ensure no open parenthesis behind
    )
    '      # a quote mark
    (?!    # negative look-ahead
        \) #   ensure no close parenthesis ahead
    )
/\\'/xsg;

您将不得不进一步解释这个建议的Perl脚本与包含Javascript的文件的关系,以及为什么它必须定期运行。不。如果不是定期执行,它将只运行一次。他从第一次键入@Motti开始就编辑了这个问题。最初它没有任何意义。对不起,我没有下载随机文件.zip文件。我也没有做你的家庭作业。我已经给你展示了一条路径,由你决定是否要走这条路径。
document.writeln('&#187; <a href="/LINK2" TARGET="_blank">Lorem ipsum lor'em x em 2</a><br>');
document.writeln('&#187; <a href="/LINK2" TARGET="_blank">Lorem ipsum lor\'em x em 2</a><br>');
while ( <> ) {
    $_ =~ ... # regular expression given above
    print $_;
}
perl myscript.pl file.js