2017-02-15 2 views
0

У меня есть Угловая 2/машинописи строки приложения, которое содержит номер представление, такие как следующий ...Преобразование номер строки в разделителях версию

10000,50

-10000

-10000.50

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

10.000

10,000.50

-10.000

-10,000.50

Каков наилучший способ сделать это?

Я пробовал другие ответы, но ничего не случилось.

Например, this.value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"); и this.value.toLocaleString();, похоже, не обрабатывают как запятую, так и десятичную точку.

+0

ли вы рассмотреть возможность использования трубы? https://angular.io/docs/ts/latest/api/common/index/CurrencyPipe-pipe.html – Saravana

+0

Поскольку вы используете Angular2, попробуйте использовать DecimalPipe (либо в представлении, либо в компоненте/службе). – Zyga

+0

просмотреть этот http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript функция numberWithCommas (х) { возврата x.toString(). replace (/ \ B (? = (\ d {3}) + (?! \ d))/g, ","); } – wonghenry

ответ

2

Вы пробовали

var some_string_value = '-10000.50'; 
parseFloat(some_string_value).toLocaleString() 

?

1

Использование «IndexOf („“)», сращивание в две части, а затем использовать метод, который вы нашли.

function addComma(num){ 
 
//some type check here 
 
\t var numStr = num.toString(); 
 
\t var intEnd = numStr.indexOf('.'); 
 
var onePart =numStr,otherPart =''; 
 
if(intEnd !== -1){ 
 
\t var onePart = numStr.slice(0,intEnd); 
 
\t var otherPart = numStr.slice(intEnd); 
 
} 
 
\t 
 
\t return onePart.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')+otherPart; 
 
}

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