比如一段字符串是:
robb=123sdfdsf;thhh=aksjdasbjkafhu34;like=shbsbdkjasdbjkas;
然后我想拿到
thhh=aksjdasbjkafhu34;
其他的不要
怎么写呢,找个会的人
比如一段字符串是:
robb=123sdfdsf;thhh=aksjdasbjkafhu34;like=shbsbdkjasdbjkas;
然后我想拿到
thhh=aksjdasbjkafhu34;
其他的不要
怎么写呢,找个会的人
const source = "robb=123sdfdsf;thhh=aksjdasbjkafhu34;like=shbsbdkjasdbjkas;";
// 先按 ; 拆分,再按 = 拆分,就可以拿到一组键值对
const entries = source.split(";")
.filter(it => it)
.map(it => it.split("=", 2));
console.log(entries);
// 输出:
// [
// [ 'robb', '123sdfdsf' ],
// [ 'thhh', 'aksjdasbjkafhu34' ],
// [ 'like', 'shbsbdkjasdbjkas' ]
// ]
const found = entries
.filter(([key]) => key == "thhh")
.map(pair => pair.join("="))
// .map(([key, value]) => `${key}=${value}`) // 上面那句也可以改成这样
.concat([""]) // 拼这个是为了结尾的分号
.join(";");
console.log(found);
// 输出:
// thhh = aksjdasbjkafhu34;
// 键值对可以直接生成对象,有这个对象想拿什么都方便
const model = Object.fromEntries(entries);
console.log(model);
// 输出:
// {
// robb: '123sdfdsf',
// thhh: 'aksjdasbjkafhu34',
// like: 'shbsbdkjasdbjkas'
// }
/^\w+=\w+;(.*);\w+=\w+;$/.match('robb=123sdfdsf;thhh=aksjdasbjkafhu34;like=shbsbdkjasdbjkas;')
不过,有一些场景不覆盖。
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答889 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
str.match(/thhh=.+?;/)