我在页面响应(保存为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');
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以为此使用一个更简单的RegExp:
hex = hex.replace(/' ?\+ ?'/g, '');
表示“替换所有单引号,然后替换为空格,然后加号,再替换为另一个空格,再替换为单引号”,然后将所有匹配项替换为空,从而将其删除。 (您需要在+之前加上\,因为+是RegExes中的特殊字符,需要转义。)