VUE读取Vcard文件,并获取/筛选想要的内容

本文介绍了如何在Vue.js中读取Vcard (VCF) 文件,提取所需的姓名(N)和电话号码(CELL)内容。通过解析文件,将数据转换为数组,并使用split()方法去除多余部分,实现所需信息的筛选。

 

我是Vcard文件,安卓通讯录,test.vcf,它的固定格式,文件内容如下(里面有四个联系人):

然后我是要获取里面的内容(因为我与后台交互是数据传输,也就是JSON方式),所以我需要获得我需要的姓名N和电话号码CELL就行。

首先我们要做的事读取这个Vcard文件,参考这个可以实现文件读写(任何后缀的文件,类似txt):https://blog.youkuaiyun.com/Make_Progress365/article/details/107017637

根据它的方法,我打印出来如下:

console.log("读取的内容如下:",this.snippets);

但是问题来了,这样我不能直接获取我想要的内容,可以一行行读取,然后获取,但是js我不熟悉数据流怎么写,java可以

但是,我们知道,如果转换成其他数组获取对象,我们就可以直接获取

所以:this.snippets是读取到的数据,就是上面的

 let temp=this.snippets.split('\n').map(v => v.trim()).sort((a, b) => b.length - a.length)
  console.log("读取的内容如下:");

 

这就直接获取数据编程数组了,举例,

我们获取数组的方式不都是 arry[0]="TEL;TYPE=CELL:3254894"  或者  arry[21]="FN:打麻将" 这样的都是我们要想获取的号码和姓名,这时候我们是要去掉多余部分,就是split(":")方法(因为他们共同特点都是:分开,就是再“:”后面是我们要的),提取数组每个内容,类似这样: ["TEL;TYPE=CELL", "3254894"] 或者 ["FN", "打麻将"] ,这不就简单了?

temp[0].split(":") 这个就获得的结果就是:["TEL;TYPE=CELL", "3254894"] ,数组2不正是你要的结果么,

temp[0].split(":") [1]  这个就获得的结果就是:"3254894"

同理

temp[23].split(":") 这个就获得的结果就是:["N", "打麻将"],数组2不正是你要的结果么,

temp[23].split(":") [1]  这个就获得的结果就是: "打麻将"

循环遍历所有,见我写的

 for(let i=0;i<temp.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值