Основная проблема заключается в том, что вы пытаетесь проверить 6 значащих цифр, а не 8, как вы видите в своих примерах.
Простой способ решить эту проблему - изменить регулярное выражение так, чтобы оно проверяло8 цифр.
const result = {
latitude: 23.07696461,
longitude: 72.59447369
};
const regex = /^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,8}/;
if(regex.test(result.latitude) && regex.test(result.longitude)){
console.log('if block');
}
else{
console.log('else block');
}
Я также изменил ваше регулярное выражение на литерал регулярного выражения , так как в противном случае вам нужно было бы экранировать символы \
.
Однако если предполагается, что это будет тест , то вы должны быть уверены, что тестируете свой тест с канонически достоверными данными.Возможно, широта и долгота должны иметь только 6 цифр?Возможно, они будут переменными?При работе с санацией / проверкой данных важно знать, каковы ваши фактические ограничения / требования к данным, и в идеале не полагаться только на то, что определенные примеры и тесты расскажут вам все, что вам нужно знать.