目前我想使用js实现特殊字符过滤字符串,要求如下:
比如说字符串:string str=“你好@”;
要将@这个特殊字符使用ASCII值替换掉,我将要得到转换过滤后的结果是:“你好-”(“—”即ASCII的值);
当我还原时,又可以得到初识状态的输入值,即“你好@”!请问js方法怎么实现?
比如说字符串:string str=“你好@”;
要将@这个特殊字符使用ASCII值替换掉,我将要得到转换过滤后的结果是:“你好-”(“—”即ASCII的值);
当我还原时,又可以得到初识状态的输入值,即“你好@”!请问js方法怎么实现?
var App = {
chars : "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",
rplstr : "~!@#$%^&*", //要过滤的字符
encode : function(str){
var self = this;
var reg = new RegExp("\\" + this.rplstr.split('').join('|\\'), "g");
str = str.replace(reg, function(v){return "{"+ (self.chars.indexOf(v) + 32) + "}";});
return str;
},
decode : function(str){
var self = this;
str = str.replace(/{\d+}/g, function(v){return self.chars.charAt(parseInt(v.replace(/{|}/g, ""), 10)-32);});
return str;
}
}
var str = "你好@{123*&%ABC"
str = App.encode(str);
alert(str);
str = App.decode(str);
alert(str);
</script>
var p = /(@|%40)/;
var t = "你好@";
t = t.replace(p,"-");
alert(t);
var p0 = /(-|%2D)/;
t = t.replace(p0,"@");
alert(t);