Помогите отредактировать регулярное выражение
Привет. Есть у меня англоязычный шаблон, которому делаю локализацию.
Столкнулся с задачей перевода символов в отображении цены, т.к. в английской цены вводятся в виде `$45`, т.е. знак доллара на первом месте, а потом число, а в русскоязычном наоборот, сначала значение, а потом `руб.` Исходное значение подается в таком виде, где `р` - кириллические символы букв: value = руб.260000 var out = value.replace(/^([^\d]*)([\d]*)/g,'$2 $1').replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1.'); В результате окончательного преобразования получаю `260000руб.` а хотелось бы, чтобы был пробел после числа и точкой разделялись тысячи, миллионы, миллиарды, т.е. 260.000 руб. |
Про разбиение числа на разряды (кстати, разряды разделяются пробелами, а не точками) уже было.
http://javascript.ru/forum/events/24...-razryady.html А в вашем случае надо хранить отдельно число, отдельно валюту, и в зависимости от валюты спереди или сзади к числу конкатить знак доллара или рубля. |
Цитата:
и не нужно мне ничего хранить отдельно - я же уже писал - меня интересует только рубли и только русская локализация без всяких долларов |
ligisayan,
вам же trikadin, дал готовое решение :-? <script> value = "260000руб." var out = value.replace(/^([^\d]*)([\d]*)/g,'$2 $1').replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1.'); document.write(out) </script> |
рони, я скоро начну давать бан на день за неиспользование поиска :)
|
Цитата:
value вот в таком перевернутом изначально виде руб.260000 ну и соответственно бяка получается в таком виде |
Цитата:
|
ligisayan,
<script> var value = "руб.260000"; var out = value.replace(/^(.*?)(\d+)$/g,'$2 $1').replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1.'); document.write(out) </script> |
рони вот так все класс - благодарю!
|
Часовой пояс GMT +3, время: 01:38. |