Chuỗi url javascript

Trong bài viết về "Mã hóa URL HTML" tôi rất thích vì sao bạn phải mã hóa (mã hóa) một URL và bảng các ký tự và giá trị mã hóa của chúng

Trong bài viết này, tôi sẽ chỉ cho bạn cách làm thế nào để mã hóa (mã hóa) và giải mã hóa (giải mã) một URL bằng Javascript

Chúng ta bắt đầu với câu hỏi "Làm thế nào để mã hóa (mã hóa) URL bằng Javascript?"

Nó thực sự phụ thuộc vào cái mà bạn muốn làm. Javascript cung cấp cho bạn 2 hàm đó là encodeURI() và encodeURIComponent(). Sự khác biệt giữa 2 hàm này là các ký tự nào sẽ được chúng tôi mã hóa

  • Hàm encodeURI() mã hóa mọi ký tự ngoại trừ các ký tự [email protected]#$&*()=. /,;?+
  • Hàm encodeURIComponent() mã hóa mọi ký tự ngoại trừ các ký tự -_. ~*'()

Do vậy hàm encodeURI() phù hợp nếu bạn muốn mã hóa toàn bộ một URL, vì phần như ( http. // ) sẽ không bị mã hóa. Sử dụng hàm encodeURIComponent() nếu bạn muốn mã hóa giá trị của một tham số

Nếu bạn sử dụng hàm encodeURIComponent() để mã hóa toàn bộ URL, bạn sẽ nhận được một kết quả không mong muốn


encodeURI("http://example.com/ hey!/")
// http://example.com/%20hey!/


encodeURIComponent("http://www.example.com/ hey!")
//  http%3A%2F%2Fexample.com%2F%20hey!%2F
 

var set1 = ";,/?:@&=+$#";  // Reserved Characters
var set2 = "-_.!~*'()";    // Unreserved Marks
var set3 = "ABC abc 123";  // Alphanumeric Characters + Space

console.log(encodeURI(set1)); // ;,/?:@&=+$#
console.log(encodeURI(set2)); // -_.!~*'()
console.log(encodeURI(set3)); // ABC%20abc%20123 (the space gets encoded as %20)

console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24%23
console.log(encodeURIComponent(set2)); // -_.!~*'()
console.log(encodeURIComponent(set3)); // ABC%20abc%20123 (the space gets encoded as %20)

Để giải mã hóa (decode) Javascript cung cấp cho bạn 2 hàm decodeURI() và decodeURIComponent(), vấn đề sử dụng của chúng tương tự như 2 hàm encodeURI() và encodeURLComponent()

2- mã hóaURI(), giải mãURI()

Hàm encodeURI(uri) trả về một chuỗi (chuỗi), là kết quả của công việc mã hóa (encode) tham số uri

Hàm encodeURI() mã hóa (encode) tất cả các ký tự, ngoại trừ các ký tự dưới đây


A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #

Hàm encodeURI(uri) được sử dụng nếu bạn muốn mã hóa toàn bộ một URL hoặc một phần URL

encodeURI-ví dụ. html





    encodeURI()
    
    

    


    

encodeURI()

Enter URL:

Ví dụ sử dụng hàm decodeURI()

ví dụ giải mãURI. js


var uri = "http://example.com/my search?value=tom and jerry&maxResults=10";

// ==> http://example.com/my%20search?value=tom%20and%20jerry&maxResults=10
var encodedUri = encodeURI(uri);

console.log(encodeUri);

// ==> http://example.com/my search?value=tom and jerry&maxResults=10
var uri2 = decodeURI(encodedUri);

console.log(uri2);

3- mã hóaURIComponent(), giải mãURIComponent()

Hàm encodeURIComponent(uri) trả về một chuỗi (chuỗi), là kết quả của công việc mã hóa (encode) tham số uri

Hàm encodeURIComponent() mã hóa (encode) tất cả các ký tự, ngoại trừ các ký tự dưới đây



A-Z a-z 0-9 - _ . ! ~ * ' ( )
 

Hàm encodeURIComponent(uri) thường được sử dụng để mã hóa (mã hóa) giá trị của một tham số của URL

encodeURIComponent-ví dụ. html





    encodeURIComponent()
    
    

    


    

encodeURIComponent()

Enter Search Text:

Ví dụ sử dụng hàm decodeURIComponent()

decodeURIComponent-ví dụ. js


var searchText = "";

// ==> someone%40gmail.com
var encodedSearchText = encodeURIComponent(searchText);

console.log(encodedSearchText);

// ==> 
var text2 = decodeURIComponent(encodedSearchText);

console.log(text2);

4- Mã hóa tất cả các ký tự?

Cả hai hàm encodeURI() và encodeURIComponent() đều không mã hóa tất cả các ký tự. Và Javascript cũng không có một hàm nào khác hỗ trợ công việc này, vì vậy nếu muốn bạn phải viết một hàm của riêng mình