我正在使用.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
數字值的字符串表示,它工作得很好。
但是,我也在數字上使用 .toFixed() 方法(在它解析為字符串之前)來顯示十進制值。
我遇到的問題是逗號現在出現在小數點後的值中,我不想要這個。
例如,使用我現在使用的方法,字符串顯示如下:15,894.710,744但我需要它顯示如下:15,894.710744。
對於代碼上下文:
const myValue = '31415926535.89793238'; //foobar.value;
const addComma = val => val.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
const numberToChange = addComma(myValue);
console.log(numberToChange)
我似乎無法解決正則表達式,非常感謝您的幫助。
將逗號僅應用於輸入的整數部分。通過在 '.' 上拆分來獲得它。
const myValue = '31415926.538398'; //foobar.value;
const addComma = val => {
const [whole, fraction] = val.split('.');
const withCommas = whole.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return `${withCommas}.${fraction}`;
}
const numberToChange = addComma(myValue);
console.log(numberToChange)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句