如何从 javascript 中的字符串中获取值?
How to fetch a value from a string in javascript?
我想从 javascript 字符串中获取特定值,而不使用 indexOf
或 substr
等方法。是否有任何预定义的方法?
例如,我有一个字符串,
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
我想从上面的字符串中获取c的值,如何直接实现?
在这种情况下,使用 split
:
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
var parts = str.split('|');
var value = parts[2].split('=')[1];
console.log(value);
或者 map
它,让所有值在之后使用:
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
var values = str.split('|').map(e => e.split('='));
console.log(values);
您可以尝试:
str.split('|').find(value => value.startsWith('c=')).split('=')[1]
您还可以将其转换为对象:
const data = str.split('|').reduce((acc, val) => {
const [key, value] = val.split('=');
acc[key] = value;
return acc;
}, {});
data.c // 3
试试这个 -
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
str.split('|')[2].split('=')[1];
使用正则表达式可以解决这个问题
const str = "a=1|b=2|c=3|d=4|e=5|f=6";
const matches = str.match(/c=([0-9]+)/);
console.log(matches[1]);
参考:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
我建议首先拆分并映射成某种形式的可读数据结构。按字符串查找容易出现拼写错误。
const mappedElements = str
.split('|')
.map(element => element.split('='))
.map(([key, value]) => ({ key: value }));
您可以将该字符串转换为关联数组或对象
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
var obj = {}; //[] for array
str.split("|").map(o => {
var el = o.split("=");
obj[el[0]] = el[1];
})
console.log(obj.a)
console.log(obj.b)
console.log(obj.c)
数组过滤方法对于此类操作可以节省内存。
var cOutput = str.split('|').filter( (val) => {
const [k,v] = val.split('=');
return k=='c' ? v : false }
)[0].split('=')[1];
我想从 javascript 字符串中获取特定值,而不使用 indexOf
或 substr
等方法。是否有任何预定义的方法?
例如,我有一个字符串,
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
我想从上面的字符串中获取c的值,如何直接实现?
在这种情况下,使用 split
:
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
var parts = str.split('|');
var value = parts[2].split('=')[1];
console.log(value);
或者 map
它,让所有值在之后使用:
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
var values = str.split('|').map(e => e.split('='));
console.log(values);
您可以尝试:
str.split('|').find(value => value.startsWith('c=')).split('=')[1]
您还可以将其转换为对象:
const data = str.split('|').reduce((acc, val) => {
const [key, value] = val.split('=');
acc[key] = value;
return acc;
}, {});
data.c // 3
试试这个 -
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
str.split('|')[2].split('=')[1];
使用正则表达式可以解决这个问题
const str = "a=1|b=2|c=3|d=4|e=5|f=6";
const matches = str.match(/c=([0-9]+)/);
console.log(matches[1]);
参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
我建议首先拆分并映射成某种形式的可读数据结构。按字符串查找容易出现拼写错误。
const mappedElements = str
.split('|')
.map(element => element.split('='))
.map(([key, value]) => ({ key: value }));
您可以将该字符串转换为关联数组或对象
var str = "a=1|b=2|c=3|d=4|e=5|f=6";
var obj = {}; //[] for array
str.split("|").map(o => {
var el = o.split("=");
obj[el[0]] = el[1];
})
console.log(obj.a)
console.log(obj.b)
console.log(obj.c)
数组过滤方法对于此类操作可以节省内存。
var cOutput = str.split('|').filter( (val) => {
const [k,v] = val.split('=');
return k=='c' ? v : false }
)[0].split('=')[1];