亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式將阿拉伯數字每隔三位為一逗號分離

正則表達式將阿拉伯數字每隔三位為一逗號分離

郎朗坤 2019-04-21 20:37:22
"115000000".split("").reverse().join("").replace(/(\d{3})(?=[^$])/g,"$1,").split("").reverse().join("");在網上找到了一種解法,可是有個地方沒明白。如下:replace(/(\d{3})(?=[^$])/g,"$1,")這里的(?=[^$])有什么作業??難道就replace(/(\d{3})/g,"$1,")不可以嗎??麻煩大家看看,幫我解答下,,蟹蟹
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

(?=exp)也叫零寬度正預測先行斷言,它斷言自身出現的位置的后面能匹配表達式exp。
可以理解為?=是一個狂妄的預言家,假設有正則/abc?=xxx/,它預言自己出現的位置后面一定、肯定、必須、只能是xxx,如果不是,那它會以死明志的(就是匹配失敗)。
那么:
1.(?=[^$])會匹配除字符除末尾所有的位置
2./(\d{3})(?=[^$])/會匹配連續的三個數字,并且這三個數字不能在字符串的末尾
3.題主疑問的replace(/(\d{3})/g,"$1,"),如果字符串長度剛好是三的倍數,那最后三個字符后也會加上逗號。比如123456789.replace(/(\d{3})/g,"$1,");//123,456,789,
                            
查看完整回答
反對 回復 2019-04-21
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

是要這樣嗎?
varnumber=123456789;
number.toLocaleString()//"123,456,789"
                            
查看完整回答
反對 回復 2019-04-21
  • 2 回答
  • 0 關注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號