解析字符串中的怪异字符时遇到问题

时间:2020-05-03 20:54:33

标签: javascript

我有一个包含以下格式字符串的数组:

$6,000↵2001 Jeep Wrangler↵Middleburg, Florida↵144K miles

我想这样迭代并添加到我的对象中:

var my object = {
    price: "$6,000",
    title: "Jeep Wrngler",
    location: "Middleburg, Florida",
    miles: "144k miles"
}

但是那小小的回车把我搞砸了。如何从一个字符串中提取以上信息?

谢谢

3 个答案:

答案 0 :(得分:0)

回车符可以仅由控制台或其他设备放入。 regex下方将按换行符或回车符分隔,然后只需从输出中创建对象

const s = '$6,000↵2001 Jeep Wrangler↵Middleburg, Florida↵144K miles';
console.log(s.split(/[\n|↵]/))

答案 1 :(得分:0)

您可以使用/n通过将正则表达式String.prototype.split与正则表达式myObject匹配来简单地分割回车符。如果您使用的是ES6,则可以轻松地使用array destructuring assignment从结果数组中提取单个元素,然后将它们分配回const data = `$6,000 2001 Jeep Wrangler Middleburg, Florida 144K miles`; const [price, title, loc, miles] = data.split(/\n/); const myObject = { price, title, location: loc, miles, } console.log(myObject);

<repositories>
    <repository>
        <id>repo</id>
        <name>repo</name>
        <url>file:${project.basedir}/src/main/resources/lib</url>
    </repository>
</repositories>

答案 2 :(得分:0)

您也可以这样做:

const data =  '$6,000\n2001 Jeep Wrangler\nMiddleburg, Florida\n144K miles';

const obj = ['price', 'title', 'location', 'miles',
              ...data.split(/\n/) ]
            .reduce((a,c,i,t)=>{
              if(i<4) a[c]=t[i+4]
              return a
              },{});

console.log( obj );