forked from urfu-2015/javascript-tasks-2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphoneBook.js
More file actions
86 lines (80 loc) · 2.89 KB
/
phoneBook.js
File metadata and controls
86 lines (80 loc) · 2.89 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
'use strict';
var phoneBook = []; // Здесь вы храните записи как хотите
/*
Функция добавления записи в телефонную книгу.
На вход может прийти что угодно, будьте осторожны.
*/
module.exports.add = function add(name, phone, email) {
if (isValidName(name) && isValidPhone(phone) && isValidEmail(email)){
phoneBook.push({name:name, phone:phone, email:email, hash:name+';'+phone+';'+email});
console.log('Запись', name, phone, email, 'добавлена')
}
console.log('Запись', name, phone, email, 'не корректна')
};
function isValidEmail(email) {
if (email==='') {
return false
}
return /[^@;]+@[^@;]+\.\w/.test(email);
}
function isValidPhone(phone){
if (phone==='') {
return false
}
return /^(\+?(\d{0,3})|(\d{1,2}))\s?(\(?(\d{3}\))|\d{3})[\s|-]?\d{3}[\s|-]?\d{1}[\s|-]?\d{3}/.test(phone);
}
function isValidName(name){
if (name==='') {
return false
}
return /\s/.test(name);
}
/*
Функция поиска записи в телефонную книгу.
Поиск ведется по всем полям.
*/
module.exports.find = function find(query) {
if (';'.indexOf(query))){
console.log('Неправильный запрос для поиска!');
return 1;
}
console.log('Поиск записей по запросу:',query)
for (var i = 0; i < phoneBook.length; i++) {
if (query.indexOf(hash))) {
console.log(phoneBook[i].name,phoneBook[i].phone,phoneBook[i].email)
}
}
return 0;
};
/*
Функция удаления записи в телефонной книге.
*/
module.exports.remove = function remove(query) {
var re = new RegExp(query);
for (var i = 0; i < phoneBook.length; i++) {
if (re.test(phoneBook[i].hash)) {
console.log(phoneBook[i].name,phoneBook[i].phone,phoneBook[i].email,'- запись удалена');
delete phoneBook[i]
}
}
return 0;
};
/*
Функция импорта записей из файла (задача со звёздочкой!).
*/
module.exports.importFromCsv = function importFromCsv(filename) {
var data = require('fs').readFileSync(filename, 'utf-8');
console.log('Этот метод не хочет работать');
// Ваша чёрная магия:
// - Разбираете записи и з `data`
// - Добавляете каждую запись в книгу
return 0;
};
/*
Функция вывода всех телефонов в виде ASCII (задача со звёздочкой!).
*/
module.exports.showTable = function showTable() {
console.log('Этот метод не хочет работать');
// Ваша чёрная магия здесь
return 0;
};