最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js之encodeURI、encodeURIComponent、decodeURI、decodeURIComponent

 更新時間:2023年04月17日 08:48:52   作者:Newbie_小白  
這篇文章主要介紹了js之encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

encodeURI、encodeURIComponent、decodeURI、decodeURIComponent

js 對文字進(jìn)行編碼涉及2個函數(shù):encodeURI,encodeURIComponent,相應(yīng)2個解碼函數(shù):decodeURI,decodeURIComponent

用來編碼和解碼URI的

統(tǒng)一資源標(biāo)識符,或叫做 URI,是用來標(biāo)識互聯(lián)網(wǎng)上的資源(例如,網(wǎng)頁或文件)和怎樣訪問這些資源的傳輸協(xié)議(例如,HTTP 或 FTP)的字符串。

encodeURI 和 decodeURI 函數(shù)操作的是完整的 URI;這倆函數(shù)的URI 中的任何保留字符都有特殊意義,所有不會編碼它們。

encodeURI主要用于直接賦值給地址欄時候:

location.href=encodeURI("http://www.cnblogs.com/Tezml/");

encodeURIComponent 和 decodeURIComponent 函數(shù)操作的是組成 URI 的個別組件;encodeURIComponent 的作用:將文本字符串編碼為一個有效的統(tǒng)一資源標(biāo)識符 (URI)。這倆函數(shù)假定任何保留字符都代表普通文本,所以必須編碼它們,所以它們(保留字符)出現(xiàn)在一個完整 URI 的組件里面時不會被解釋成保留字符了。

 原因:如果 username = 'a&foo=boo' 而不用 encodeURIComponent 的話,整個參數(shù)就成了 name=a&foo=boo, 這樣 CGI 就獲得兩個參數(shù) name 和 foo. 這不是我們想要的。

Javascript 里還有個同樣功能的函數(shù) encodeURI, 但是此方法不會對下列字符進(jìn)行編碼:":"、"/"、";" 和 "?"。

傳遞參數(shù)時需要使用encodeURIComponent

這樣組合的url才不會被#等特殊字符截?cái)唷?/p>

例如:

<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeURIComponent(" rel="external nofollow" ?rel="external nofollow" http://cang.baidu.com/bruce42")+'">退出</a& gt;');</script>
<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeURIComponent(" rel="external nofollow"  rel="external nofollow" http://cang.baidu.com/bruce42")+'">退出</a& gt;');</script>

decodeURI()和decodeURIComponent()這兩個函數(shù)可以對特定函數(shù)生成的密碼字符串進(jìn)行解密操作,就可以生成為未解密的字符串,比較實(shí)用,

decodeURI()定義和用法

decodeURI() 函數(shù)可對 encodeURI() 函數(shù)編碼過的URI 進(jìn)行解碼。

語法:decodeURI(URIstring)

參數(shù) 描述:URIstring 必需。一個字符串,含有要解碼的 URI 或其他要解碼的文本。

返回值:URIstring 的副本,其中的十六進(jìn)制轉(zhuǎn)義序列將被它們表示的字符替換。

decodeURIComponent()定義和用法

decodeURIComponent() 函數(shù)可對 encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼。

語法:decodeURIComponent(URIstring)

參數(shù) 描述:URIstring 必需。一個字符串,含有編碼 URI 組件或其他要解碼的文本。

返回值:URIstring 的副本,其中的十六進(jìn)制轉(zhuǎn)義序列將被它們表示的字符替換。

URL傳參中的字符加密及解碼方式

encodeURI/decodeURI、encodeURIComponent/decodeURIComponent 這四個方法的用處

都是用來編碼和解碼URI的。

encodedURI

函數(shù)通過將特定字符的每個實(shí)例替換為一個、兩個、三或四轉(zhuǎn)義序列來對統(tǒng)一資源標(biāo)識符 (URI) 進(jìn)行編碼 (該字符的 UTF-8 編碼僅為四轉(zhuǎn)義序列)由兩個 "代理" 字符組成)。encodeURI 自身無法產(chǎn)生能適用于HTTP GET 或 POST 請求的URI,例如對于 XMLHTTPRequests, 因?yàn)?"&", "+", 和 "=" 不會被編碼,然而在 GET 和 POST 請求中它們是特殊字符。然而encodeURIComponent這個方法會對這些字符編碼。

decodeURI

函數(shù)解碼一個由encodeURI 先前創(chuàng)建的統(tǒng)一資源標(biāo)識符(URI)或類似的例程。

encodeURIComponent

是對統(tǒng)一資源標(biāo)識符(URI)的組成部分進(jìn)行編碼的方法。它使用一到四個轉(zhuǎn)義序列來表示字符串中的每個字符的UTF-8編碼(只有由兩個Unicode代理區(qū)字符組成的字符才用四個轉(zhuǎn)義字符編碼)。轉(zhuǎn)義除了字母、數(shù)字、(、)、.、!、~、*、'、-和_之外的所有

decodeURIComponent

方法用于解碼由 encodeURIComponent 方法或者其它類似方法編碼的部分統(tǒng)一資源標(biāo)識符(URI)。

若解碼字符串包含%,則會報(bào)錯

原因如下: 

escape/unescape函數(shù)對字符串進(jìn)行編碼。

此函數(shù)使字符串具有可移植性,這樣它就可以通過任何網(wǎng)絡(luò)傳輸?shù)饺魏沃С?ASCII 字符的計(jì)算機(jī)。

此函數(shù)對特殊字符進(jìn)行編碼,但以下字符除外: * @ - _ + . /

心得:

當(dāng)你需要轉(zhuǎn)碼/解碼的URL是需要一個完整、可直接訪問的URL時,應(yīng)該使用encodeURI/decodeURI; 當(dāng)你需要轉(zhuǎn)碼/解碼的URL是作為鏈接的一部分,比如用作參數(shù)的情況,應(yīng)該使用encodeURIComponent/decodeURIComponent,針對用encodeURIComponent/decodeURIComponent時解析‘%’報(bào)錯推薦使用escape/unescape函數(shù)可以避免頁面報(bào)錯

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript設(shè)計(jì)模式之觀察者模式(推薦)

    Javascript設(shè)計(jì)模式之觀察者模式(推薦)

    觀察者模式有時也稱為發(fā)布--訂閱模式,在觀察者模式中,有一個觀察者可以管理所有的目標(biāo),等到有狀態(tài)發(fā)生改變的時候發(fā)出通知
    2016-03-03
  • 解決微信內(nèi)置瀏覽器返回上一頁強(qiáng)制刷新問題方法

    解決微信內(nèi)置瀏覽器返回上一頁強(qiáng)制刷新問題方法

    微信內(nèi)置瀏覽器在返回上一頁面,且上一頁面包含AJAX代碼時,頁面就會被強(qiáng)制刷新,極度影響用戶體驗(yàn)。而我們想要的效果是:返回上一頁面時,頁面還停留在原來的狀態(tài),AJAX獲取到的數(shù)據(jù)還在,滾動條也在原來的位置。下面跟著小編一起來看下吧
    2017-02-02
  • 簡單實(shí)現(xiàn)js倒計(jì)時功能

    簡單實(shí)現(xiàn)js倒計(jì)時功能

    這篇文章主要為大家詳細(xì)介紹了js倒計(jì)時效果的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • js使用正則表達(dá)式對身份證號的判斷

    js使用正則表達(dá)式對身份證號的判斷

    這篇文章主要給大家介紹了關(guān)于js使用正則表達(dá)式對身份證號的判斷的相關(guān)資料,在用戶注冊頁面有些需求要求的比較嚴(yán)格,需要對身份證驗(yàn)證是否合法,通過此功能嚴(yán)格此系統(tǒng)軟件,從而過濾到很多,需要的朋友可以參考下
    2023-08-08
  • JS中模糊查詢功能的一些常用方法

    JS中模糊查詢功能的一些常用方法

    在前端開發(fā)中,模糊查詢與下拉匹配是提高用戶體驗(yàn)的重要功能,特別是在搜索功能上,這篇文章主要給大家介紹了關(guān)于JS中模糊查詢功能的一些常用方法,需要的朋友可以參考下
    2024-06-06
  • JavaScript詞法作用域與調(diào)用對象深入理解

    JavaScript詞法作用域與調(diào)用對象深入理解

    關(guān)于 Javascript 的函數(shù)作用域、調(diào)用對象和閉包之間的關(guān)系很微妙,關(guān)于它們的文章已經(jīng)有很多,本文做了一些總結(jié),需要的朋友可以參考下
    2012-11-11
  • JavaScript實(shí)現(xiàn)飛舞的泡泡效果

    JavaScript實(shí)現(xiàn)飛舞的泡泡效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)飛舞的泡泡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Iframe thickbox2.0使用的方法

    Iframe thickbox2.0使用的方法

    一個小項(xiàng)目中用到,奉命進(jìn)行修改,定位到
    2009-03-03
  • 小程序封裝wx.request請求并創(chuàng)建接口管理文件的實(shí)現(xiàn)

    小程序封裝wx.request請求并創(chuàng)建接口管理文件的實(shí)現(xiàn)

    這篇文章主要介紹了小程序封裝wx.request請求并創(chuàng)建接口管理文件
    2019-04-04
  • 深入學(xué)習(xí)js函數(shù)的隱式參數(shù) arguments 和 this

    深入學(xué)習(xí)js函數(shù)的隱式參數(shù) arguments 和 this

    這篇文章主要介紹了 深入學(xué)習(xí)js函數(shù)的隱式參數(shù) arguments 和 this,arguments是一個類數(shù)組結(jié)構(gòu),它保存了調(diào)用時傳遞給函數(shù)的所有實(shí)參;this是函數(shù)執(zhí)行時的上下文對象, 這個對象有些讓人感到困惑的行為。 下面分別對他們進(jìn)行討論。,需要的朋友可以參考下
    2019-06-06

最新評論

灵宝市| 延吉市| 比如县| 乐东| 池州市| 西安市| 贵州省| 涪陵区| 仲巴县| 廉江市| 维西| 施秉县| 靖西县| 丰台区| 仪陇县| 新营市| 杨浦区| 永丰县| 嘉祥县| 阳朔县| 眉山市| 新竹县| 会理县| 镇原县| 民丰县| 瑞丽市| 鄄城县| 霍邱县| 冀州市| 沙田区| 黔西| 连南| 淮北市| 台南市| 禹城市| 吉木乃县| 淮安市| 西丰县| 威信县| 扶余县| 从化市|