@Coder321

Как пропарсить количество символов после точки?

Мне нужно пропарсить входящие число. То есть, если мне приходит число у которого больше 2-х символов после точки, мне нужно генерить ошибку. Как такое сделать?

P.S. Если переводить в строку, то число в формате 1.100 обрежется до 1.1 и отловить что прислано не валидное значение я не смогу.
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 4
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
function isValid(s) {
  return /^\d+(\.\d{1,2})?$/.test(s);
}

console.log(isValid('123')) //true
console.log(isValid('123.')) //false
console.log(isValid('12.3')) //true
console.log(isValid('1.23')) //true
console.log(isValid('0.123')) //false
Ответ написан
BuriK666
@BuriK666
Компьютерный псих
if (n * 100 != Math.round(n * 100)) {
// Invalid value
}
Ответ написан
AlexanderBelov
@AlexanderBelov
Frontend developer
На вход только всегда строку пускать нужно.

var num = "10987.100",
check = num.substring(num.lastIndexOf(".") + 1);

check.length > 2 ? alert("Error!") : alert("OK!")
Ответ написан
@ddd329
Без регулярки:
function isValid(str){
  var
    lastIndex = str.length - 1,
    findIndex = str.indexOf('.'),
    count = null;
    
	if( findIndex == -1 ){
  	return true;
  }
  else {
  	count = lastIndex - findIndex;
  	return count == 1 || count == 2;
  }
}

console.log(isValid('123')) //true
console.log(isValid('123.')) //false
console.log(isValid('12.3')) //true
console.log(isValid('1.23')) //true
console.log(isValid('0.123')) //false
console.log(isValid('1.100')) //false
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы