Hvordan koder og afkoder man en URL i JavaScript?
Kodning og afkodning af URL'er i JavaScript er afgørende for webudvikling, især når du laver GET-anmodninger med forespørgselsparametre. Denne proces sikrer, at specialtegn i URL'er fortolkes korrekt af serveren. For eksempel konverteres mellemrum til %20 eller + i URL'er. Denne vejledning dækker, hvordan du bruger JavaScript-funktioner som encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() og unescape() til effektiv URL-kodning og -afkodning.
Eksempel:
- Åbn www.google.com og skriv en søgeforespørgsel nørder til nørder.
- Når søgeresultaterne vises, skal du observere browserens URL-linje. Browser-URL'en vil bestå af %20 eller +-tegn i stedet for mellemrum.
- Webadressen vil blive vist som: https://www.google.com/search?q=geeks%20for%20geeks eller https://www.google.com/search?q=geeks+for+geeks
Bemærk : Browseren konverterede automatisk mellemrummene til + eller %20-tegn.
Kodning af en URL: Kodning i Javascript kan opnås ved hjælp af:
Indholdsfortegnelse
- 1. JavaScript encodeURI funktion
- 2. JavaScript encodeURIComponent() Funktion
- 3. JavaScript escape() funktion
- 1. JavaScript decodeURI() Funktion
- 2. JavaScript decodeURIComponent() Funktion
- 3. JavaScript unescape() Funktion
- 4. JavaScript querystring-modul
1. JavaScript encodeURI funktion
Det encodeURI() funktion bruges til at kode komplet URI. Denne funktion koder specialtegnet undtagen (, / ?: @ & = + $ #) tegn.
Syntaks:
encodeURI( complete_uri_string );Javascript
const url = 'https://www.google.com/search?q=geeks for geeks'; const encodedURL = encodeURI(url); console.log(encodedURL)
Produktion
https://www.google.com/search?q=geeks%20for%20geeks
2. JavaScript encodeURIComponent() Funktion
Det encodeURIComponent() funktion bruges til at kode nogle dele eller komponenter af URI. Denne funktion koder specialtegnene. Derudover koder den følgende tegn: , / ? : @ & = + $ #
Syntaks:
encodeURIComponent( uri_string_component );Javascript
const component = 'geeks for geeks'; const encodedComponent = encodeURIComponent(component); console.log(encodedComponent);
Produktion
geeks%20for%20geeks
3. JavaScript escape() funktion
JavaScript escape() funktion tager en streng som en enkelt parameter og koder den streng, der kan transmitteres over computernetværket, som understøtter ASCII-tegn. Kodning er processen med at konvertere almindelig tekst til chiffertekst.
Syntaks:
escape( string )
Bemærk: Funktionen escape() koder kun specialtegnene, denne funktion er forældet.
Undtagelser: @ – + . /*_
Javascript const url = 'https://www.google.com/search?q=geeks for geeks'; const encodedURL = encodeURI(url);// encoding using encodeURI console.log(encodedURL) console.log(' ' + escape(url)); //encoding using escape Produktion
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks
Afkodning af en URL
Afkodning i Javascript kan opnås vha
1. JavaScript decodeURI() Funktion
Det decodeURI() funktion bruges til at afkode URI genereret af encodeURI() .
Syntaks:
decodeURI( complete_encoded_uri_string )
Eksempel : Dette eksempel beskriver decodeURI() funktion af Javascript .
Javascript const url = 'https://www.google.com/search?q=geeks%20for%20geeks'; const decodedURL = decodeURI(url); console.log(decodedURL)
Produktion
https://www.google.com/search?q=geeks for geeks
2. JavaScript decodeURIComponent() Funktion
Det decodeURIConponent() funktion bruges til at afkode nogle dele eller komponenter af URI genereret af encodeURIComponent().
Syntaks:
decodeURIComponent( encoded_uri_string_component )
Eksempel : Dette eksempel beskriver decodeURIConponent() af Javascript.
Javascript const component = 'geeks%20for%20geeks' const decodedComponent = decodeURIComponent(component); console.log(decodedComponent)
Produktion
geeks for geeks
3. JavaScript unescape() Funktion
Denne funktion tager en streng som en enkelt parameter og bruger den til at afkode den streng, der er kodet af escape()-funktionen. Den hexadecimale sekvens i strengen erstattes af de tegn, de repræsenterer, når de afkodes via unescape() funktion.
Syntaks:
unescape(string)
Bemærk: Denne funktion afkoder kun specialtegnene, denne funktion er forældet.
Undtagelser: @ – + . /*_
Javascript const url = 'https://www.google.com/search?q=geeks for geeks'; const encodedURL = encodeURI(url); console.log(encodedURL) console.log(escape(url)); console.log(decodeURI(encodedURL)); console.log(unescape(encodedURL));
Produktion
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks https://www.google.com/search?q=geeks for geeks https://www.google.com/search?q=geeks for ...
4. JavaScript querystring-modul
Forespørgselsstrengsmodulet giver værktøjer til at analysere og formatere URL-forespørgselsstrenge. Det kan bruges til at kode og afkode URL-komponenter.
Kodning af en URL:
For at kode en URL kan vi bruge funktionen querystring.stringify() til at oprette en forespørgselsstreng fra et objekt og derefter bruge encodeURIComponent() til at kode den resulterende streng.
JavaScript const querystring = require('querystring'); const urlParams = { q: 'geeks for geeks', page: 1, sort: 'desc' }; const encodedURL = 'https://www.google.com/search?' + querystring.stringify(urlParams); console.log(encodedURL);
Produktion:
https://www.google.com/search?q=geeks%20for%20geeks&page=1&sort=desc
Afkodning af en URL:
For at afkode en URL kan vi bruge querystring.parse()-funktionen til at parse forespørgselsstrengen ind i et objekt og derefter få adgang til de afkodede værdier.
JavaScript const decodedParams = querystring.parse('q=geeks%20for%20geeks&page=1&sort=desc'); console.log(decodedParams.q); // Output: geeks for geeks console.log(decodedParams.page); // Output: 1 console.log(decodedParams.sort); // Output: desc
Forskel decodeURIConponent og decodeURI:
| decodeURIConponent | decodeURI | |
|---|---|---|
| Definition | Funktionen decodeURIComponent() bruges til at afkode nogle dele eller komponenter af URI genereret af encodeURIComponent(). | Afkodning i Javascript kan opnås ved hjælp af decodeURI-funktionen. |
| Syntaks | decodeURIConponent(encoded_uri_string_component) | decodeURI( komplet_indkodet_uri_streng) |
| Speciel tegnkodning | Det kræver encodeURIComponent(url) streng, så det kan afkode disse tegn. | Det tager encodeURI(url) streng, så det kan ikke afkode tegn (, / ? : @ & = + $ #) |
| Eksempel | decodeURIComponent(%41) Det returnerer A decodeURIConponent(%26): Det returnerer & | decodeURI(%41): Det returnerer A decodeURI(%26): Det returnerer %26 |
URL-kodning og -afkodning i JavaScript er afgørende for problemfri webudvikling. Ved at bruge funktioner såsom encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() og unescape(), kan udviklere sikre, at deres URL'er er korrekt formateret og læsbare af servere. Denne færdighed er afgørende for håndtering af forespørgselsparametre i GET-anmodninger og sikrer en glat brugeroplevelse på dit websted.