Как сравнить строку в логической функции JavaScript? - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно написать модульный тест для функции JavaScript, чтобы сравнить два телефонных номера. Это функция, входными параметрами которой являются две строки и тип возвращаемого значения true / false. True, если номера телефонов совпадают, false, если они не совпадают. В тест необходимо включить как можно больше случаев.

Определение функции: phoneNrsAreEqual(nr1: String, nr2: String): Bool

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Для начала нужно очистить телефонные номера, создав версии строк без знаков препинания.

function cleanPhoneNumber(n) {
  return n.replace(/[() +-]/g,"");
}

function phoneNrsAreEqual(nr1, nr2) {
  return cleanPhoneNumber(nr1) === cleanPhoneNumber(nr2);
}

Все становится намного сложнее, если в число входят международные номера, поскольку существует много разных способов. их представления.

(01234) 567890
+44 (1234) 567890
01144 (1234) 567890   (when dialed from US)

- это одно и то же число.

0 голосов
/ 06 ноября 2019

Я считаю, что это то, что вам нужно?

Вы можете удалить пробелы с помощью функции замены.

function phoneNrsAreEqual(firstNumber, secondNumber) {
    
    return removeSpaces(firstNumber) == removeSpaces(secondNumber);

}

function removeSpaces(str) {
    
    return str = str.replace(/\s+/g, '');

}
...