Приветствую.
В доках в учебнике 
сказано что:
	
	| 
		
			 Цитата: 
		
	 | 
	| 
		Иногда isFinite используется для проверки, содержится ли в строке число:
	 | 
	
Вы бы стали использовать вот эту глобальную функцию для таких проверок на то что число? Касается данных из форм.
let mynumber = $('#mynumber').val();
    if (!isFinite(mynumber)) {
    	event.preventDefault();
    }
Даже по тому запускаемому примеру видно, что оно вернет истину для
1) пустой строки
2) для строки вида -  '  123   '
3) для чисел в виде -  1e2
4) даже для чисел в 16-ричном формате записи - 0xff
, эти результаты могут  выглядеть неожиданно с пользовательской точки зрения.
Смотрю lodash в своей isFinite базируется на статическом Number.isFinite, может этим путем, когда сам преобразовываешь, и стоит идти?
Например что то типа:
function isNumberOk(strVal){
   if (typeof(strVal) == 'string') {
     let numVal = + strVal;
     if ((numVal.toString() == strVal) && (Number.isFinite(numVal))) {
        return true;
     }
     
   }
   return false;
}
let num = prompt("Enter a number", '');
// вернёт true всегда, кроме ситуаций, когда аргумент - Infinity/-Infinity или не число
alert( isNumberOk(num) );
p.s. В yii2 валидация чисел  на клиенте сделана регулярками, думал может это устаревший подход