2015-10-27 2 views
-1

Строка, представляющая валюту, должна быть преобразована в число. Например:Строка: Заменить функцию выражением в Javascript

Input : "125.632.454.454.403,51" 
Output expected : 125632454454403.51 

В настоящее время я пытаюсь:

Trial 1)

a = "125.632.454.454.403,51"; 
a.replace(/./, ''); 

Результат = "25.632.454.454.403,51"

Испытание 2)

a = "125.632.454.454.403,51"; 
a.replace(/./g, ''); 

Результат = ""

Но я ожидаю, что функция замены, чтобы найти все вхождения "". и заменить на "".

Trial 3)

a = "125.632.454.454.403,51"; 
a.replace(/,/, ''); 

Результат = "125.632.454.454.40351"

Я был бы рад, если бы я найти починку для этого.

ответ

1

Вам необходимо использовать \. вместо .. dot (.) соответствует одному символу, не заботясь о том, что это за символ. Также вы можете сделать это с одним replace() с обратным вызовом.

var str = "125.632.454.454.403,51"; 
 

 
str = str.replace(/\.|,/g, function(m) { 
 
    return m == '.' ? '' : '.' 
 
}); 
 

 
document.write(str);

0

replaceвозвращает измененную строку, она не меняет ее на месте!

Вы можете найти это, обратившись к documentation.

0

Использование

var Result = a.split('.').join(""); 

console.log(Result); 
0

. имеет особое значение в регулярном выражении. Он соответствует любому персонажу. Вам нужно бежать точку, если вы на самом деле ищете самого характер

var a = "125.632.454.454.403,51"; 
var result = a.replace(/\./g,""); 
0

Вы также можете сделать (parseFloat(a.replace(/[^0-9]+/g,""))/100) И если вы должны сделать это для нескольких валют, я бы рекомендовал смотреть в autonumeric.js. Он обрабатывает все это для вас.

1

попробовать:

var str = "125.632.454.454.403,51" ; 
 
var result = str.replace(/\./g,'').replace(/\,/g,'.'); 
 

 
console.log(Number(result))

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