Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отделить текст от чисел. (https://javascript.ru/forum/misc/44501-otdelit-tekst-ot-chisel.html)

Boomerml 22.01.2014 16:24

Отделить текст от чисел.
 
Есть строка типа '1 233 324 324 кылт'

Нужно отделить текст от чисел, к примеру в перемененную tt вернуть массив alert - '1 233 324 324, кылт'

Извините за дуратский вопрос :) , Спасибо!

ksa 22.01.2014 16:59

Цитата:

Сообщение от Boomerml
Есть строка типа '1 233 324 324 кылт'

Нужно отделить текст от чисел, к примеру в перемененную tt вернуть массив alert - '1 233 324 324, кылт'

Как вариант...

var val='1 233 324 324 кылт';
alert(val.replace(/([0-9])\s+([^0-9])/g,'$1,$2').split(','));

Boomerml 23.01.2014 11:51

Не могу понять почему не работает, пытался метод Number, тоже не работает подскажите.

Не могу сложить числа

var lmbpr = '20 550 тг';// для примера беру из .text()
				var lmbpr = lmbpr.replace(/([0-9])\s+([^0-9])/g,'$1,$2').split(',');
				alert(lmbpr);
				var tt = '32602';// для примера беру из .attr('jq_bpr')
				alert(tt);
				var lmsum = parseInt(lmbpr[0]) + parseInt(tt);
				alert(lmsum);
				var lmsum = lmsum+' '+lmbpr[1];// ставлю пробел
				alert(lmsum);


Спасибо!

ksa 23.01.2014 13:24

Цитата:

Сообщение от Boomerml
Не могу сложить числа

Пробелы убери... ;)

// для примера беру из .text()
var lmbpr = '20 550 тг';
var lmbpr = lmbpr.replace(/([0-9])\s+([^0-9])/g,'$1,$2').split(',');
alert(lmbpr);
// для примера беру из .attr('jq_bpr')
var tt = '32602';
alert(tt);
var lmsum = parseInt(lmbpr[0].replace(/\s/g,'')) + parseInt(tt);
alert(lmsum);
// ставлю пробел
var lmsum = lmsum+' '+lmbpr[1];
alert(lmsum);

Boomerml 23.01.2014 13:29

Да, знание javascript у меня зашкаливает :D , проблема была в числе, replace работает со строками.

var lmbpr = '20 550 тг'.replace(/([0-9])\s+([^0-9])/g,'$1,$2').split(',');// это пример забераю из .text()
				alert(lmbpr);

				var lmsum = parseInt(lmbpr[0].replace(' ','')) + parseInt('32602');
				alert(lmsum);

				var lmsum = String(lmsum).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
				alert(lmsum);

				var lmsum = lmsum+' '+lmbpr[1];// ставлю пробел
				alert(lmsum);


ksa
Спасибо огромное за регулярку! Помог очень!

В прицепе я свою задачу выполнил, но может кто даст по элегантней конечный пробел?

ksa 23.01.2014 13:32

Цитата:

Сообщение от Boomerml
Спасибо огромное за регулярку!

Для твоего варианта действа вообще можно так

var lmbpr = '20 550 тг';
alert(lmbpr.split(/\s(?=[^0-9])/));


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