對于一些需要對 URL 進行編碼處理的需求, jQuery 提供了一些實用的方法可以很方便地實現這一功能。
首先,我們可以使用encodeURIComponent()
方法對 URL 中的參數進行編碼。例如:
var str = "http://example.com/search?key=JavaScript&value=$50"; var encodedStr = encodeURIComponent(str); console.log(encodedStr); // "http%3A%2F%2Fexample.com%2Fsearch%3Fkey%3DJavaScript%26value%3D%2450"
可以看到,利用encodeURIComponent()
方法對 URL 進行編碼后,其中的特殊字符都被轉化為了對應的編碼表示。
另外,如果需要對整個 URL 進行編碼,可以使用encodeURI()
方法。例如:
var url = "http://example.com/search?key=JavaScript&value=$50"; var encodedUrl = encodeURI(url); console.log(encodedUrl); // "http://example.com/search?key=JavaScript&value=$50"
和encodeURIComponent()
不同的是,encodeURI()
方法不會對其中的參數進行編碼,而只是將整個 URL 進行編碼。
最后,如果需要對編碼后的 URL 進行解碼,可以使用decodeURIComponent()
和decodeURI()
方法。例如:
var encodedStr = "http%3A%2F%2Fexample.com%2Fsearch%3Fkey%3DJavaScript%26value%3D%2450"; var decodedStr = decodeURIComponent(encodedStr); console.log(decodedStr); // "http://example.com/search?key=JavaScript&value=$50" var encodedUrl = "http://example.com/search?key=JavaScript&value=$50"; var decodedUrl = decodeURI(encodedUrl); console.log(decodedUrl); // "http://example.com/search?key=JavaScript&value=$50"
可以看到,使用對應的解碼方法對編碼后的字符串進行解碼,可以得到原來的 URL。