处理空格和特殊字符
2019-02-26 本文已影响0人
光明程辉
解决关于 \u00a0 特殊空格的值。
replace(/\u00a0|\s+/ig, '');
/*
* 转换特殊字符*/
/*编码*/
encode:function(str) {
var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则
str = str.replace(patt, function(char){
var H, L, code;
if (char.length===2) {
H = char.charCodeAt(0); // 取出高位
L = char.charCodeAt(1); // 取出低位
code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法
return "&#" + code + ";";
} else {
return char;
}
});
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '\"',
// "'": ''',
"/": '/',
"$":'$',
// "\\":"\\"
};
// encodeURIComponent该方法是为了兼容后端不兼容\的问题
// return encodeURIComponent(String(str).replace(/[&<>"\/$]/g, function (s) {
// return entityMap[s];
// }));
var delStr = String(str).replace(/[&<>"\/$]/g, function (s) {
return entityMap[s];
});
// (/\\u00a0|\s+/ig, '') 就是这个解决了 u00a0 的空格bug
return delStr.replace(/\n/g,'\\n').replace(/\\u00a0|\s+/ig, '');
},