js前端URL含有特殊字符的轉(zhuǎn)碼的實現(xiàn)
有些符號在URL中是不能直接傳遞的,如果要在URL中傳遞這些特殊符號,那么就要使用他們的編碼了。下表中列出了一些URL特殊符號及編碼
十六進制值
1. + URL 中+號表示空格 %2B
2. 空格 URL中的空格可以用+號或者編碼 %20
3. / 分隔目錄和子目錄 %2F
4. ? 分隔實際的 URL 和參數(shù) %3F
5. % 指定特殊字符 %25
6. # 表示書簽 %23
7. & URL 中指定的參數(shù)間的分隔符 %26
8. = URL 中指定參數(shù)的值 %3D
問題:url 傳有特殊字符出現(xiàn)丟失,因為特殊字符會被特殊處理
方法一:正則替換
var str = str.replace(/\+/g, "%2B"); //"+" 轉(zhuǎn)義 var str = str.replace(/\&/g, "%26"); //"&" 轉(zhuǎn)義 var str = str.replace(/\#/g, "%23"); //"#" 轉(zhuǎn)義
方法二:encodeURIComponent(str)
方法 (推薦)
let str = 'NBA+'; str = encodeURIComponent(str); console.log(str) // NBA%2B
- 當然,可以兩者結(jié)合,再你不知道該特殊字符的轉(zhuǎn)義的時候,可以使用
encodeURIComponent()
來得到,就像你不知道鍵盤某鍵的keyCode一樣 - 另外,
decodeURIComponent()
是解碼,decodeURIComponent(encodeURIComponent("+")) === '+'
, true
到此這篇關(guān)于js前端URL含有特殊字符的轉(zhuǎn)碼的實現(xiàn)的文章就介紹到這了,更多相關(guān)js URL特殊字符轉(zhuǎn)碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在?xHTML?中驗證?noscript+meta?refresh?標簽
這篇文章主要介紹了如何在?xHTML?中驗證?noscript+meta?refresh?標簽,需要的朋友可以參考下2023-03-03關(guān)于JavaScript數(shù)組你所不知道的3件事
這篇文章主要為大家詳細介紹了關(guān)于JavaScript數(shù)組三個并不那么常見的功能,你所不知道的事情,感興趣的小伙伴們可以參考一下2016-08-08File, FileReader 和 Ajax 文件上傳實例分析(php)
File, FileReader 和 Ajax 文件上傳實例分析(php),需要的朋友可以參考下。2011-04-04