2013-09-23 4 views
-1

У меня есть набор полей формы, которые имеют значения $ 1.00, $ 1654.31, и я хотел бы преобразовать их в числовую строку, чтобы я мог вычислять значения.

Im зацикливается над каждым, но продолжайте получать NaN, когда я вхожу в консоль.

$("input.costs").each(function(index) { 
    console.log($(this).val() + parseFloat($(this).val()) ); 
}); 

каждый раз, когда он возвращает NaN, им интересно, есть ли простой способ сделать строковое значение доллара преобразовать в числовое значение только для расчета?

заранее спасибо

+2

Вы должны удалить '' '' '' '' '' не число. – undefined

+0

@Musa: «У меня есть набор полей формы, которые имеют значения $ 1.00, $ 1654.31" – zerkms

ответ

1
var numberWithoutDollar = numberWithDollar.replace(/^\$/, ''); 
3

Попробуйте

$("input.costs").each(function(index) { 
    console.log($(this).val() + parseFloat($(this).val().replace('$','')) ); 
}); 
+2

Вместо '$ (this) .val()' вы можете использовать 'this.value'. –

1

Вы должны удалить все, кроме цифр, ., - и +.

$("input.costs").each(function(index) { 
    console.log($(this).val() + parseFloat($(this).val().replace(/[^\d\.\+-]/g, "")) ); 
}); 

Примеры:

parseFloat("-1.00".replace(/[^\d\.\+-]/g, "")) 
// -1 

parseFloat("+1654.31 ".replace(/[^\d\.\+-]/g, "")) 
// 1654.31 
0

просто пропустить знак доллара.

parseFloat($(this).val().substr(1))