[問題] 如何對0開頭的數字加1

看板Web_Design作者 (no anonymous)時間8年前 (2017/05/01 12:47), 編輯推噓5(509)
留言14則, 9人參與, 最新討論串1/2 (看更多)
如果我現在有一個數字 叫0001 那我應該要怎麼做 才能做到0001+1 變成0002 0009+1 變成0010的效果 在JavaScript 0001會被當成字串 所以0001直接+1會變成00011 所以直接+1當然不行 感覺這個狀況應該很多人都會遇到 但我目前還沒找到可行的做法 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.199.33 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1493614068.A.861.html

05/01 12:55, , 1F
先用數字做運算,然後前面補4個字串0,再用slice即可
05/01 12:55, 1F

05/01 12:58, , 2F
去零→加一→補零
05/01 12:58, 2F

05/01 13:22, , 3F
string to int ->int to string ->left pad
05/01 13:22, 3F

05/01 15:29, , 4F
不是0001會被當成字串,是0001本來就是字串
05/01 15:29, 4F

05/01 15:30, , 5F
你沒有一個數字,只有一個字串,要做數字運算當然先轉數字
05/01 15:30, 5F

05/01 15:32, , 6F
解決了 感謝
05/01 15:32, 6F

05/01 15:33, , 7F
slice("0",4-Math. ceil(Math.log(num.length))) + nu
05/01 15:33, 7F

05/01 15:33, , 8F
m
05/01 15:33, 8F

05/01 16:18, , 9F
'000' + (parseInt(num, 10) + 1)).slice(-4)
05/01 16:18, 9F

05/01 16:19, , 10F
^( 抱歉最前面少個括號
05/01 16:19, 10F

05/01 21:46, , 11F
先用正規表示法把0001變成1 轉成數字+1之後 用padStart()
05/01 21:46, 11F

05/01 21:46, , 12F
補上0
05/01 21:46, 12F

05/02 20:28, , 13F
數字直接運算 最後再從前面補零即可
05/02 20:28, 13F

05/06 07:56, , 14F
+"0001" + 1
05/06 07:56, 14F
文章代碼(AID): #1P1htqXX (Web_Design)
文章代碼(AID): #1P1htqXX (Web_Design)