簡體   English   中英

如何獲取使用 ASCII 編碼參考的 url 的特定部分?

[英]How to get specific part of url that uses ASCII Encoding Reference?

我目前正在嘗試從與此類似的編碼 url 中檢索email

https://www.madeupwebsite.com/state=%7B%22application%22:%22SOMETHING%22,%22email%22:%22SOMETHING@madeup.com%22,%22subdomain%22:%22YES%22%7D

我試過這樣的decodeURI:

const str = 'https://www.madeupwebsite.com/state=%7B%22application%22:%22SOMETHING%22,%22email%22:%22SOMETHING@madeup.com%22,%22subdomain%22:%22YES%22%7D';
const result = decodeURI(str);

但是console.log返回這個:

"https://www.madeupwebsite.com/state={\"application\":\"SOMETHING\",\"email\":\"SOMETHING@madeup.com\",\"subdomain\":\"YES\"}"

有沒有更好的方法來獲得 email? 我必須使用正則表達式嗎?

提取 email 地址時的粗略第一次切割將是:

JSON.parse(decodeURIComponent(str.substring(str.indexOf('state=') + 6))).email

這產生:

SOMETHING@madeup.com

當然,如果URL中除了state之外可能還有多個參數,如果你想做錯誤檢查等等,你必須更復雜。

這是我想出的解決方案:

const decodedUrlObj = decodeURI(str).split("state=").pop();
const formatToJSON = JSON.parse(decodedUrlObj);
console.log("formatToJSON2: ", formatToJSON.username);
// "formatToJSON2: SOMETHING@madeup.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM