Javascript字符串解析问题

Javascript字符串解析问题,javascript,Javascript,我有一根线,打印出来时是这样的 “fname XYZ mname{}lname ABC” 它作为单个字符串存储在代码中。不是作为一个对象。 但我希望能够单独访问fname、mname和lname。如何分别打印fname、MNName和lname?是否有一种简单的方法,或者我应该将字符串存储为对象,以便轻松访问fname、mname、lname?如果它们都用空格分隔,则可以将字符串拆分为字符串数组 var inputString = "fname XYZ mname {} lname ABC";

我有一根线,打印出来时是这样的 “fname XYZ mname{}lname ABC”

它作为单个字符串存储在代码中。不是作为一个对象。
但我希望能够单独访问fname、mname和lname。如何分别打印fname、MNName和lname?是否有一种简单的方法,或者我应该将字符串存储为对象,以便轻松访问fname、mname、lname?

如果它们都用空格分隔,则可以将字符串拆分为字符串数组

var inputString = "fname XYZ mname {} lname ABC";
var strings = inputString.split(" "); // outputs ["fname", "XYZ", "mname", "{}", "lname", "ABC"]

您可以获得如下关联数组:

var str = "fname XYZ mname {} lname ABC";
var obj = [];
str.split(" ").forEach((item, index, arr) => {if (index%2 === 0) obj[item] = arr[index+1]}) ;
console.log(obj); // [ fname: 'XYZ', mname: '{}', lname: 'ABC' ]
安装:

您可以这样做:

let string = 'fname XYZ mname {} lname ABC';
let stringObj = saw(string)
  .split(' ')
  .filter(item => !item.match(/name/i))
  .toObject('fname', 'mname', 'lname')
现在您有了一个对象,这些值很容易访问

{
"fname": "XYZ",
"mname": "{}",
"lname": "ABC"
}

听起来对象在这里是一个合理的选择。你需要一个对象。在空格上拆分字符串,然后取第一、第三和第五个元素。谢谢j08691。这就是犹太人的建议,也是我想我会做的。对象是另一种选择。它们都被一个空间隔开。我认为转换为数组,然后通过[1][3]和[5]进行访问将得到fname、mname和lname的值。是的,这是最简单的方法。请记住,数组索引是基于零的。(fname将是字符串[0])是的。谢谢Jecoms。