为了账号安全,请及时绑定邮箱和手机立即绑定

如何解析字符串并获取接下来的 6 个字符?

如何解析字符串并获取接下来的 6 个字符?

慕丝7291255 2023-04-27 16:59:21
我有这样的字符串:   let str = "Hello=322484^nicetomeetyou=245454^howdoIdothis=11111a^EP";我如何解析此字符串以仅获取例如“245454”?我假设它必须基于 'nicetomeetyou=' '=' 之后的值始终为 6 个字符。
查看完整描述

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您可以使用split来提取部分(名称和值),并将Object.fromEntries这些对转换为一个对象。然后您可以通过该对象的属性访问每个值:


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将undefined分配给属性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


查看完整回答
反对 回复 2023-04-27
?
偶然的你

TA贡献1841条经验 获得超3个赞

因此,您使用不同的分隔符重新发明了查询。把它设为 & 你就可以使用内置的 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"));


如果你想用 ^留它,一个拆分和映射


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);


查看完整回答
反对 回复 2023-04-27
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您可以将所有^值替换为并通过URLSearchParams&运行它以获取您要查找的值:

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


const params = new URLSearchParams(str.replace(/\^/g, '&'))


console.log(params.get('nicetomeetyou'))



查看完整回答
反对 回复 2023-04-27
  • 3 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信