87,901
社区成员
发帖
与我相关
我的任务
分享
return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){
if(a in G2Uhash){
return String.fromCharCode('0x'+G2Uhash[a]);
}else{
return a;
}
})
// 稍微改造下
return str.replace(((?:%[8-9a-f][0-9a-f]){2}|%[0-7][0-9a-f])/gi,function(a){
if (a.length==3){
return String.fromCharCode(parseInt(a.replace('%',''),16));
}
else if(a in G2Uhash){
return String.fromCharCode('0x'+G2Uhash[a]);
}else{
return a;
}
})
str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g
// 把你复制代码中的这个正则修改下就好
'%D2%BB%CC%E5%BB%FA%2F%D0%A1%D7%E96'.match(/((?:%[8-9a-f][0-9a-f]){2}|%[0-7][0-9a-f])/gi)
区分下7位和8位就可以了,7位的直接 String.FromChatCode(parseInt('2F',16)),8位的继续用他自己的方法