我希望用JavaScript从DNS区域文件中删除所有的注释。在DNS区域文件中,注释以分号(
上面的代码按预期工作。然而,下面的代码替换了比预期多一个字符:
在第二个例子中,我期望的是
;
)开头。但是,如果分号前面有反斜杠,则不希望替换分号。我有一些测试代码,如下所示:var record = 'example.com IN TXT "v=DKIM1\\; k=rsa\\; p=MIGf..."';
var recordWithCommentRemoved = record.replace(/[^\\];[\s\S]*?$/gm, '');
console.log(recordWithCommentRemoved); // example.com IN TXT "v=DKIM1\; k=rsa\; p=MIGf..."
上面的代码按预期工作。然而,下面的代码替换了比预期多一个字符:
var record = 'test 300 IN A 100.100.100.100;this is a comment';
var recordWithCommentRemoved = record.replace(/[^\\];[\s\S]*?$/gm, '');
console.log(recordWithCommentRemoved); // test 300 IN A 100.100.100.10
在第二个例子中,我期望的是
test 300 IN A 100.100.100.100
,但它返回的是test 300 IN A 100.100.100.10
。那么我的正则表达式出了什么问题呢?