javascript - 基于找到的内容的高级查找和替换 - Javascript

标签 javascript

我正在尝试使用脚本简化流程。发生的事情是我有一个大小适中的脚本,它有很多 base-64 编码的字符串,我想用解码版本替换它们(使用 atobbtoa ).例如,我有 atob("MHhfZXhwb3J0") 并想用 atob("MHhfZXhwb3J0") 的输出替换它,即 "0x_export"。我尝试拆分 atob(" 的代码,然后保存内容并替换它们,但由于某种原因它在某些时候中断了。我尝试使用 string.replace(/*/g, *),但是你好像不能在replace中使用函数。很抱歉,如果我描述的问题不是最好的,所以如果有人有进一步的问题,我很乐意回答。

下面显示了我正在尝试做的一个小例子:

开始示例脚本:

function test(callback, number, reason) {
    if (number != atob("MA==")) {
        console.log(atob("RmFpbGVkOiA=") + reason + atob("LiBQbGVhc2UgdHJ5IGFnYWluLg=="));
    } else {
        callback(number);
    }
}

之后的示例脚本:

function test(number, reason) {
    if (number != "0") {
        console.log("Failed: " + reason + ". Please try again.");
    } else {
        callback(number);
    }
}

最佳答案

可以传递函数来替换 - 您可以将整个代码作为字符串粘贴到某个 Javascript 编辑器中,然后替换 atob("...") 解码后的文本:

const inputScript = `
function test(callback, number, reason) {
    if (number != atob("MA==")) {
        console.log(atob("RmFpbGVkOiA=") + reason + atob("LiBQbGVhc2UgdHJ5IGFnYWluLg=="));
    } else {
        callback(number);
    }
}
`;
const outputScript = inputScript
  .replace(/atob\("([^\"]+)"\)/g, (_, p1) => `"${atob(p1)}"`)
  .trim();
console.log(outputScript);

关于javascript - 基于找到的内容的高级查找和替换 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013893/

相关文章:

javascript - 如何允许使用空格的正则表达式

javascript - 为每个元素设置 `overflow: hidden`

javascript - 使用ajax动态分割滚动条

javascript - 通过 JSON 将 val 设置为 td

javascript - document.layers 正在嗅探什么浏览器?

javascript - 通过 jQuery 重置联系表单的问题

javascript - 这个脚本发生了什么

javascript - 如何在 WebView 中保持 CSS 持久化

javascript - 当 redux 状态改变时,功能组件不会重新渲染

javascript - 特殊字符没有出现在警报框中,因为它