如何将带有连接的字符串转换为JavaScript中的真实字符串?

时间:2019-07-18 18:56:49

标签: javascript string hex md5

我在页面响应(保存为autoResponse)上有一个类似于此的字符串:

... hexMD5('\262' + '****' + '\155\135\053\325\374\315\264\062\232\354\242\205\217\034\154\005'); ...

为了捕获此信息,我使用:

var hex = autoResponse.split('hexMD5(')[1].split(')')[0];

这现在给我这个字符串:

'\262' + '****' + '\155\135\053\325\374\315\264\062\232\354\242\205\217\034\154\005'

如果我直接将其放入hexMD5()方法中,它会认为'+符号和空白是秘密。

我尝试使用replace()删除它们,如下所示:

while(hex.split("'").length !== 1) hex = hex.replace("'", "");
while(hex.split("+").length !== 1) hex = hex.replace("+", "");
while(hex.split(" ").length !== 1) hex = hex.replace(" ", "");

但是,当我执行hexMD5(hex)时,会给我一个不正确的十六进制。无论如何,我可以将十六进制转换为字符串,在此它将字符串组合在一起,就像我像

一样对其进行硬编码
hexMD5('\262' + '****' + '\155\135\053\325\374\315\264\062\232\354\242\205\217\034\154\005');

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以为此使用一个更简单的RegExp:

hex = hex.replace(/' ?\+ ?'/g, '');

表示“替换所有单引号,然后替换为空格,然后加号,再替换为另一个空格,再替换为单引号”,然后将所有匹配项替换为空,从而将其删除。 (您需要在+之前加上\,因为+是RegExes中的特殊字符,需要转义。)