-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
70 lines (65 loc) · 3.29 KB
/
Copy pathmain.js
File metadata and controls
70 lines (65 loc) · 3.29 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
/* task 0
Даны строки разделенные различным образом,
верните строки разделенные / или _, в нижнем регистре
solution("ActiveModel::Errors") => active_model/errors"
solution("HelloHowAreYou") => "hello_how_are_you"
solution("MyNAMEIsBOND-JamesBond") => my_name_is_bond_james_bond"
solution("MAINCompany::BEST-MAINUser") => "main_company/best_main_user"
*/
let solution = string => {
string = string.replace('::','/');
string = string.replace('-','_');
let lastModifiedLetterPosition = -2;
const splitAndLower = (match, p1,offset, string) => {
const nextLetter = string.charAt(offset + 1);
const prevLetter = string.charAt(offset - 1);
const isNexLetterSmall = nextLetter.toLowerCase() === nextLetter;
const isNexLetterSubSplitter = nextLetter === '_';
const isPrevLetterSplitter = prevLetter === '/';
const isPrevLetterSubSplitter = prevLetter === '_';
const noSplitter = (
offset == 0 ||
offset == lastModifiedLetterPosition + 1 && (!isNexLetterSmall || isNexLetterSubSplitter) ||
isPrevLetterSplitter ||
isPrevLetterSubSplitter
);
const splitter = noSplitter ? '' : '_';
lastModifiedLetterPosition = offset;
return splitter + p1.toLowerCase();
}
string = string.replace(/([A-Z])/gm,splitAndLower);
return string;
}
console.log("ActiveModel::Errors => ",solution("ActiveModel::Errors"));
console.log("HelloHowAreYou => ",solution("HelloHowAreYou"));
console.log("MyNAMEIsBOND-JamesBond => ",solution("MyNAMEIsBOND-JamesBond"));
console.log("MAINCompany::BEST-MAINUser => ",solution("MAINCompany::BEST-MAINUser"));
/* TASK 0.5
ГОТОВО: Добавить кота в ваш КОД в Node.js !!
КОТА ОСТАВИТЬ
Добавить проверку на существование файла
*/
/* TASK 1
По приложению phone-book;
1. Для каждой страницы у вас должен быть класс с одноименным названием
в отдельном файле
2. Каждый класс должен содержать методы render() - который рендерит всю страницу
3. Удалить jquery.js и bootstrap.js с проекта
-> Закончить keypad с прошлого занятия, добавить функционал для удаления номера
Сортировка таблицы!
Визуализировать страницы Edit contact, User, Add User;
TASK 2
1. keypad - сделать чтобы номер можно было набрать с клавиатуры (!)
2. Формат номера должен быть таким (099)-17-38-170
*/
/*
TASK 3
edit-contact,
- сделать данные редактируемыми (атрибут contentEditable) // input
- изменять backgroundColor
add-user при клике:
index.html/contacts.html - в поле search при вводе буквы,
добавить поиск по имени если имя включает хотя бы одну эту букву.
после ввода каждого символа, фильтровать отображаемых пользователей.
При удалении всех символов отобразить снова весь список
*/