问题:url 传有特殊字符出现丢失,因为特殊字符会被特殊处理
方法一:正则替换
var str = str.replace(/\+/g, "%2B"); //"+" 转义
var str = str.replace(/\&/g, "%26"); //"&" 转义
var str = str.replace(/\#/g, "%23"); //"#" 转义
方法二:encodeURIComponent(str)
方法 (推荐)
let str = 'NBA+';
str = encodeURIComponent(str);
console.log(str) // NBA%2B
- 当然,可以两者结合,再你不知道该特殊字符的转义的时候,可以使用
encodeURIComponent()
来得到,就像你不知道键盘某键的keyCode一样 - 另外,
decodeURIComponent()
是解码,decodeURIComponent(encodeURIComponent("+")) === '+'
, true