vCard (vcf) parser in javascript
vCard Parser parses the vCard (or .vcf file contents) to a JSON object. Supports multiple vCard entries.
Include parser.js file in your project.
var result = vCardParser.parse(data);
You may check the test.html for more detail and samples.
BEGIN:VCARD
VERSION:4.0
N:Gump;Forrest;;;
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif
TEL;TYPE=work,voice;VALUE=uri:tel:+11115551212
TEL;TYPE=home,voice;VALUE=uri:tel:+14045551212
ADR;TYPE=work;LABEL="100 Waters Edge\nBaytown, LA 30314\nUnited States of A
merica":;;100 Waters Edge;Baytown;LA;30314;United States of America
ADR;TYPE=home;LABEL="42 Plantation St.\nBaytown, LA 30314\nUnited States of
America":;;42 Plantation St.;Baytown;LA;30314;United States of America
EMAIL:forrestgump@example.com
REV:20080424T195243Z
END:VCARD
[
{
"name": {
"surname": "Gump",
"name": "Forrest",
"additionalName": "",
"prefix": "",
"suffix": ""
},
"displayName": "Forrest Gump",
"organization": "Bubba Gump Shrimp Co.",
"title": "Shrimp Man",
"photo": "http://www.example.com/dir_photos/my_photo.gif",
"telephone": [
{
"isDefault": false,
"valueInfo": {
"TYPE": "work,voice",
"VALUE": "uri"
},
"value": "tel:+11115551212"
},
{
"isDefault": false,
"valueInfo": {
"TYPE": "home,voice",
"VALUE": "uri"
},
"value": "tel:+14045551212"
}
],
"address": [
{
"isDefault": false,
"valueInfo": {
"TYPE": "work",
"LABEL": "100 Waters Edge\nBaytown, LA 30314\nUnited States of America"
},
"value": {
"postOfficeBox": "",
"number": "",
"street": "100 Waters Edge",
"city": "Baytown",
"region": "LA",
"postalCode": "30314",
"country": "United States of America"
}
},
{
"isDefault": false,
"valueInfo": {
"TYPE": "home",
"LABEL": "42 Plantation St.\nBaytown, LA 30314\nUnited States ofAmerica"
},
"value": {
"postOfficeBox": "",
"number": "",
"street": "42 Plantation St.",
"city": "Baytown",
"region": "LA",
"postalCode": "30314",
"country": "United States of America"
}
}
],
"email": [
{
"isDefault": false,
"valueInfo": {
"TYPE": "home",
"LABEL": "42 Plantation St.\nBaytown, LA 30314\nUnited States ofAmerica"
},
"value": "forrestgump@example.com"
}
]
}
]