2015-11-07 2 views
0

Я использую выражение регулярного выражения для преобразования пользовательского ввода в формат валюты, , но я не знаю, как это работает. Помогите мне в ученике в Regex.выражение регулярного выражения для преобразования формата валюты

return "$" + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") 

Мне также нужны отрицательные числа в формате валюты, как я могу это достичь?

example 
     -254182=> -254,182.00 
+0

Plesse дают пример для того, что пользователь вводит в систему и что должно быть возвращено. – fjellfly

ответ

0

Давайте разбить его на части:

"$"          # literal $ sign 
num.toFixed(2)       # round up to 2 decimal points 
replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") # places comma after every 3 digits 

Размещение запятой через каждые 3 цифры делается с помощью опережения регулярное выражение, которое утверждает, что есть более 1 комплекта 3 цифр вперед, наконец, за которым следует нецифровой.

Пример:

var num = 1234567.8685; 
var fmt = "$" + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") 
//=> $1,234,567.87 
+0

Я также хочу, чтобы отрицательные числа были в формате валюты, как я могу это достичь? – durai

+0

Это не было частью вашего вопроса. Вы должны отредактировать вопрос с примерами. – anubhava

+0

'num.toFixed (2) .replace (/ (\ d) (? = (\ D {3}) + (?! \ D))/g," $ 1, ")' уже преобразует '-254182' в '-254,182.00', разве это не то, что вы хотите? – anubhava

Смежные вопросы