我構建了一個使用逗號格式化數字的函數,類似于該toLocaleString方法的作用。為了實現這一點,我使用了正則表達式和遞歸。然而,我有一種感覺,這件事本來可以做得更好。我做了一些研究,但無法找到我正在尋找的答案。所以,我的問題是......有更好的方法嗎?function transform(value) { const pureNumber = parseInt(value); const numberParts = []; function format(val) { let formatted = val.toString().split(/(\d{3})$/).filter(i => !!i).join(","); const splitted = formatted.split(","); if(splitted.length > 1){ numberParts.unshift(splitted[1]); return format(splitted[0]); } numberParts.unshift(splitted[0]); return numberParts.join(","); } return format(pureNumber.toString()); }const data = "1234567890";const result = transform(data);console.log(result);我需要你注意的是,我使用了正則表達式來分割字符串,但是,我想知道是否有辦法只使用正則表達式來避免遞歸?即,有沒有辦法使用從字符串末尾開始并向左重復的正則表達式?
用逗號格式化數字
largeQ
2023-09-28 15:21:27