2016-02-25 3 views
0

Я получаю значение уага по:Как определить число из значения var?

var val=document.getElementById('ctl00_ContentPlaceHoldermain_TextBox1').value; 

В моем коде я типа каждого символа, используя «» TYPEOF проверку. Но всегда он возвращает только строку. Как определить номер?

+0

Возможный дубликат [десятичных чисел в JavaScript Validate - IsNumeric()] (http://stackoverflow.com/questions/18082/validate-decimal-numbers-in-javascript-isnumeric) – Rajesh

+1

IsNaN является JavaScript, чтобы вы знали, что строка не является числом. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/isNaN –

ответ

2

Вы можете использовать parseInt или parseFloat. Если parseInt(str) возвращает NaN, значит, ваша строка не является числом.

Вы можете использовать только для строк, которые содержат только цифры: parseInt('123'). Если это возможно, что ваша строка может содержит буквы тоже, так что вы можете получить некоторые проблемы:

parseInt('123') // -> 123 
parseInt('123asd') // '123asd' is not a number but parseInt returns 123 

Так более простой способ заключается в использовании jQuery «s isNumeric функцию или реализовать его самостоятельно

Вы можете увидеть больше о это из ссылки в комментарии @ Rahat.

Также вы можете увидеть на this blog post

+0

Вы не должны использовать parseInt или parseFloat для этой цели. Причина объясняется здесь: http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers – Rahatur

+0

@Rahat благодарит за ваш комментарий! – feeeper

+0

Мне нужно выбрать каждый элемент из val и указать, является ли он номером или нет? @Rahat – Sachin

0

Я согласен с альтернативным ответом, но я думаю, что parseInt и parseFloat следует использовать для анализа, поскольку они предназначены для этого. Функция isNaN может дать вам числовую функциональность проверки.

function isNumber(val) { 
    if(val == "") { 
    return false; 
    } 
    return !isNaN(val); 
} 

Согласно комментарию, если вы хотите выбрать номер из массива, вы можете просто создать цикл и вызвать его внутри. например

var vals = ['dsds','2','','4']; 
for (var i = 0; i<vals.length; i++) { 
    if(isNumber(vals[i]) { 
    // it's number 
    } 
    else { 
    // it's not number; 
    } 
} 
+0

Мне нужно выбрать каждое число из val (т.е. val [i]) и nee, чтобы идентифицировать его номер или нет. – Sachin

+0

, почему я создал функцию, а не один вкладыш. вы можете вызвать его для цикла – Imad

+0

Отредактированный ответ ....... – Imad