Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   3 строки кода (https://javascript.ru/forum/jquery/12238-3-stroki-koda.html)

Johny 08.10.2010 12:12

3 строки кода
 
Всем доброго дня. Есть код:
function str_rep(value){ return value.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') ;}
var str = str_rep($('.qwe').val() * $('#fgh').val() / 100);
alert(str);
Но он не хочет работать.Подскажите, пожалуйста, почему?

exec 08.10.2010 12:40

Цитата:

[^\d]
Внутри квадратных скобок нельзя использовать такие мета-символы.

Пишите [^0-9] или \D.

Johny 08.10.2010 12:50

Попробовал, но firebug всёравно выдает
TypeError: value.replace is not a function { message="value.replace is not a function"...
Но если написать var str = str_rep($('.qwe').val());
то cкрипт отрабатывает нормально...Приведения типов уже пробовал.

Kolyaj 08.10.2010 12:54

Цитата:

Сообщение от exec
Внутри квадратных скобок нельзя использовать такие мета-символы.

Можно.

Цитата:

Сообщение от Johny
TypeError: value.replace is not a function { message="value.replace is not a function"...

Потому что у чисел нет метода replace.

Johny 08.10.2010 13:03

Цитата:

Сообщение от Kolyaj (Сообщение 73492)
Потому что у чисел нет метода replace.

Спасибо, помогло. Думаю, новичкам, к которым я сам отношусь, будет интересно:
function str_rep(value){ return value.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') ;}
var amount = str_rep($('.qwe').val() * $('#asd').val() / 100 + "");
alert(amount);

MikhailGirshberg 08.10.2010 14:18

полезный ресурс:
 
использую)


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