-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.js
More file actions
63 lines (47 loc) · 1.57 KB
/
run.js
File metadata and controls
63 lines (47 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// to use methods from other files we simply use `require` with path name
var reader = require( './read' ),
writer = require( './write' );
reader.read( './raw_attendees.csv', function( data ){
var lines=data.split("\n");
var result = [];
var headers=lines[0].split(",");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(",");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
//validate email using regex
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
//phone validation regex
var regexObj = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
//var subst = '$1 $2-$3';
var uniqueNames = [];
nonuniqueNames = [];
for(i = 0; i< result.length; i++){
if (result[i].phone!=undefined) {
if(result[i].phone.indexOf("+")==0){
result[i].phone = result[i].phone.slice(3);
}
result[i].phone = result[i].phone.replace(regexObj, "($1) $2-$3");
} else {
// Invalid phone number
}
if(uniqueNames.indexOf(result[i].email) === -1){
if (validateEmail(result[i].email)){
uniqueNames.push(result[i]);
} else {
nonuniqueNames.push(result[i]);
}
} else {
nonuniqueNames.push(result[i]);
}
}
writer.write( './valid_attendees.json', JSON.stringify(uniqueNames));
writer.write( './invalid_attendees.json', JSON.stringify(nonuniqueNames));
});