整數從右到左正則匹配 隔三個加乙個逗號

2022-04-28 19:03:06 字數 788 閱讀 5968

我自己開始的時候,寫的以下**,但是不行

'43123456789'.replace( /((\d)+)$/g, ',$1' )   ---**2  //"43,123456789"

'43123456789'.replace( /((\d)+)$/g, ',$1=$2' )   ---**3  //"43,123456789=789"
**2中,開始一直沒有明白為什麼有問題,現在理解了。**2的正則是:全域性匹配(多個3個數字+結束行)。匹配從第乙個數字開始,index為0,發現不匹配,然後index後移一位到1,發現也不是結尾前為3個3個的數字,然後繼續後移一位到2,進行貪婪匹配,直接匹配到了結尾處,所以外層括號匹配的是123456789,即$1是123456789。然後index移到最末尾了,全域性沒有用了。所以加不加g,這裡都是一樣的。

從**3中,看到$2是789,我很好奇為嘛不是123呢。通過猜測感覺是裡面的小括號在匹配的過程中會被覆蓋。雖然是加號,但是只有乙個括號,執行+號的時候,括號的內容一直更新

'43123456789'.replace( /\b(?=(\d)+$)/g, ',' ) ---**1

如上圖,紅線代表空隙。**1中的正則/\b(?=(\d)+$)/g:\b是匹配的是非單詞邊界的空格;?=是非獲取性的匹配;\b(?=(\d)+$)這個匹配的是乙個後面有多個3個數字的空隙(非獲取性匹配)。

空隙1匹配不上,移到空隙2,後面的數字的個數也不是3的倍數,移到3,匹配上了,全域性匹配繼續,4,5過,6匹配上,7、8過,空隙9匹配上,10、11、12都過,所以**1就能實現啦

乙個好漢三個幫

混跡江湖已有不少年頭,缺人氣。在創業公司做,做不出創業的氣氛來。搞技術的人其實好像並不在乎是否創業公司,只在意工資是否發得出,有沒有事情做,公司本身能否成功與自己無關。有多少人考慮過,如何成就團隊的同時成就自己?創業公司一般門檻低,容易得到乙份offer,但往往進去後就迷失掉,忘記了所處的人生階段,...

三個正整數的和是乙個正整數 ,有多少種組合方法

由於可調功率儀器昂貴,所以用普通燈泡代替,但是只有小功率燈泡,在電量計量的時候需要大功率進行比較,所以想了辦法用多個燈泡代替,手中有95w 60w 40w燈泡,合計做出乙個1000w的功率儀器,所以有了下面的方法。三個正整數的和是乙個正整數 有多少種組合方法 我這裡三個數用的是 95 6040 和是...

給乙個數值加千位分隔號

想要的效果 123456789.123 123,456,789.123 直接貼 function splitk num var zs temparr.reverse join 整數部分 return decimal?zs decimal zs var num 123456789.123 consol...