Во всех приведенных вызовах возвращает false. А должно true). Помогите разобраться.
Моя логика:
^1? - в начале строки либо 1 либо ничего.
\s? -дальше, возможно, есть пробел
\((?=...\)) - открывающая скобка, если дальше есть три символа и закрывающая скобка
...\)?\s?-? - три символа, и, возможно, закрывающая скобка, пробел, дефис.
Дальше регулярное выражение работает правильно.
Где ошибка?
function telephoneCheck(str) {
return /^1?\s?\((?=...\))...\)?\s?-?...-?\s?....$/.test(str);
}
telephoneCheck("555-555-5555"); // true
telephoneCheck("5555555555"); // true
telephoneCheck("1 555-555-5555"); // true
telephoneCheck("1 555 555 5555"); // true
/*
Also true (it works)
(555)555-5555
(555) 555-5555
1(555)555-5555
*/
/*
False
(6505552368)
0 (757) 622-7382
-1 (757) 622-7382
10 (757) 622-7382
555)-555-5555
etc.
*/