DivMan

проверка на число.

Recommended Posts

Как введённое значение в prompt проверить на число?

 

Нужно что бы, если в prompt, ввести число, то этот prompt появится опять.

var arr = [];var age = prompt('Введите числа', '');arr.push(age);if (age == "" || age == null) {	document.write("Введите число");}else if (age == number) {	var age = prompt('Введите числа', '');}document.write(arr)

Share this post


Link to post
Share on other sites

Держите функцию проверки

function isNum(n) {   return Number(n) === n;}

Если нужны не целые или целые числа отдельно, то по такому принципу

function isInt(n){    return Number(n) === n && n % 1 === 0;}function isFloat(n){    return n === Number(n) && n % 1 !== 0;}
Edited by nomalware

Share this post


Link to post
Share on other sites
var age = parseInt(window.prompt('Введите число', ''), 10);if (!isNaN(age)) {  alert('число');}

Это я к тому, что Number.isInteger() не пашет в ИЕ11.

Share this post


Link to post
Share on other sites

Самая короткая проверка на целое число :)

function isInt(n) {  return (n^0) === n;}console.log(isInt(-1), isInt(0), isInt(2000000000));console.log(isInt(''), isInt('1'), isInt(1.5));
Edited by user89

Share this post


Link to post
Share on other sites

Привнесу немного света в этот тред:

 

x = 6;

y = "6";

x.__proto__ === Number.prototype;  // true

y.__proto__ === String.prototype;  // true

x.__proto__ === String.prototype;  // false

Share this post


Link to post
Share on other sites

Предупреждение: хотя на сегодняшний момент большинство браузеров поддерживают свойство Object.prototype.__proto__, его поведение только недавно было стандартизировано в новой спецификации ECMAScript 6. Если вам требуется поддержка браузеров до этой спецификации, рекомендуется использовать вместо него метод Object.getPrototypeOf().

Хотя конечно есть всякие Babel.js, но всё равно рановато ящитаю.

Share this post


Link to post
Share on other sites

 

Предупреждение: хотя на сегодняшний момент большинство браузеров поддерживают свойство Object.prototype.__proto__, его поведение только недавно было стандартизировано в новой спецификации ECMAScript 6. Если вам требуется поддержка браузеров до этой спецификации, рекомендуется использовать вместо него метод Object.getPrototypeOf().

Хотя конечно есть всякие Babel.js, но всё равно рановато ящитаю.

 

Мне кажется, это уже лишняя перестраховка.

С зеленого начинается IE 11.

См. скриншот: https://www.dropbox.com/s/12xlxqvjw9f1u3f/Screenshot%20from%202015-11-20%2023%3A17%3A16.png?dl=0

Табличка тут: https://kangax.github.io/compat-table/es6/

А те, кто использует ИЕ 10- должны страдать)

 

Edited by cat

Share this post


Link to post
Share on other sites
On 11/18/2015 at 5:07 PM, DivMan said:

Как введённое значение в prompt проверить на число?

 

var a = +prompt('Введите число');

Проверяем:

var a = +prompt('Введите число'); // 33
console.log(a); // 33 .
console.log(typeof a); // Number .
console.log(Number.isInteger(a)); // True .

 

var a = +prompt('Введите число'); // 5de
console.log(a); // NaN .
console.log(typeof a); // Number .
console.log(Number.isInteger(a)); // False .

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,511
    Total Members
    3,128
    Most Online
    Marking
    Newest Member
    Marking
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.