Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Цена с рублями, нужно оставить только цифры (https://javascript.ru/forum/jquery/44825-cena-s-rublyami-nuzhno-ostavit-tolko-cifry.html)

alexmixaylov 03.02.2014 20:06

Цена с рублями, нужно оставить только цифры
 
Хочу сделать проверку и написать условие
ячейка содержит цену и символы валюты (руб.)

например 1800 руб.

мне нужно чтобы скрипт считал сумму
а текстовые символы мешают

как сделать чтобы скрипт учитывал только число, но не принимал во внимание буквы????

СПАСИБО

рони 03.02.2014 20:27

alexmixaylov, поиск!!!
только цифры

alexmixaylov 04.02.2014 11:08

Спасибо почитал
но все равно не понял
может нечетко сформулировал вопрос
уточню

есть ячейка со значением 1000 руб.
для расчета стоимости доставки нужно получить числовое значение

рони 04.02.2014 11:42

alexmixaylov,
нарисуйте вашу ячейку в html
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Vlasenko Fedor 04.02.2014 13:25

var num = "1800 руб.";
      alert(+num.replace(" руб.", "") + 10);
      alert(+num.slice(0, -5) + 20);

danik.js 04.02.2014 14:05

var price = '1000 руб.';
alert(parseFloat(price));

alexmixaylov 04.02.2014 14:35

сделал так
var getSumm = document.getElementById('total').innerHTML;/*получаем значение корзины*/
      var summa = getSumm.replace(/[^\d]/gi, ''); /*убираем буквы и пробелы*/


спасибо всем за помощь
теперь нужно чтобы элемент с id="total" определялся не один раз
а отслеживались изменения его значения

danik.js 04.02.2014 14:55

alexmixaylov, можно узнать почему не подошел parseInt() / parseFloat() ?

krasovsky 04.02.2014 15:06

Цитата:

теперь нужно чтобы элемент с id="total" определялся не один раз
а отслеживались изменения его значения
#total - это инпут?тогда
document.getElementById('total').addEventListener('onchange',function(){
//твой код на ончейндж
})

если это не инпут а див например - то setInterval() используй

Кстати я честно не помню как addEventListener объявляется, так что тупо копировать не стоит.

danik.js 04.02.2014 15:25

Цитата:

Сообщение от krasovsky
#total - это инпут?

Врядли, если он через innerHTML забирает цену.
Цитата:

Сообщение от krasovsky
если это не инпут а див например - то setInterval() используй

Очень хреновый совет. Это как спрятать какую-то вещь от самого себя и тут же начать ее искать )))
Цену (свойство total.innerHTML) ты сам ведь меняешь (через скрипт), соответственно незачем "вслепую", по интервалу отлавливать это изменение.
Цитата:

Сообщение от krasovsky
Кстати я честно не помню как addEventListener объявляется

Не onchange, а change


Часовой пояс GMT +3, время: 11:45.