簡體   English   中英

如何解析字符串並獲取接下來的 6 個字符?

[英]How do I parse a string and get next 6 characters?

我有這樣的字符串:

   let str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP";

我如何解析此字符串以僅獲取例如“245454”? 我假設它必須基於 'nicetomeetyou=' '=' 之后的值始終為 6 個字符。

您可以使用split提取部分(名稱和值),並Object.fromEntries將這些對轉換為 object。然后您可以通過該 object 的屬性訪問每個值:

 const toObject = (str) => Object.fromEntries(str.split("^").map(eq => eq.split("="))); // Demo let str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP"; let obj = toObject(str); console.log(obj.Hello);

請注意,在示例字符串中, EP沒有相應的= ,在這種情況下,toObject 返回的toObjectundefined分配給屬性EP 要測試該EP屬性是否實際存在,您可以使用in運算符:

 const toObject = (str) => Object.fromEntries(str.split("^").map(eq => eq.split("="))); // Demo let str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP"; let obj = toObject(str); console.log("EP" in obj); // true

所以你用不同的分隔符重新發明了查詢。 把它設為 & 你就可以使用內置的 URLSearchParams

 const str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP"; const urlParams = new URLSearchParams(str.replace(/\^/g, '&')); console.log(urlParams.get("Hello")); console.log(urlParams.get("nicetomeetyou")); console.log(urlParams.get("howdoIdothis"));

如果你想用 ^ 保留它,拆分和 map

 var str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP"; const params = Object.fromEntries(str.split("^").map(s => s.split(/=/))); console.log(params["Hello"]); console.log(params["nicetomeetyou"]); console.log(params["howdoIdothis"]);

如果你只關心這 3 個值

 var str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP" var re = /=([^\^]+)/g; var out = []; while(match = re.exec(str)) out.push(match[1]); console.log(out);

而且因為你似乎只關心一個值

 const str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP"; const val = str.match(/nicetomeetyou=(.{6})/)[1] console.log(val);

您可以將所有^值替換為&並通過URLSearchParams運行它以獲取您要查找的值:

 const str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP"; const params = new URLSearchParams(str.replace(/\^/g, '&')) console.log(params.get('nicetomeetyou'))

暫無
暫無

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

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