亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

正則:將一串?dāng)?shù)字的每3個(gè)就用逗號(hào)分開(kāi)的問(wèn)題
高洛峰
高洛峰 2016-11-10 11:42:51
0
4
1359

'12334565632'.replace(/(\d)(?=(\d{3})+$)/g, "$1,");//結(jié)果:"12,334,565,632"

上邊這個(gè)是網(wǎng)上找的,是可以實(shí)現(xiàn)的,但是和我理解的不一樣,我說(shuō)下我是怎么想的,大家?guī)臀抑刚?,謝謝。
1.(?=(\d{3})+$)/g 這里用了一個(gè)零寬斷言,我認(rèn)為(\d{3})后邊這個(gè)+是說(shuō)出現(xiàn)1次或更多次的意思,那么如果我將前邊的字符串換成'2'的時(shí)候我發(fā)現(xiàn)也匹配成功了,按理說(shuō)他沒(méi)有匹配到3個(gè)數(shù)字?。槭裁催€是成功了呢??

2.這個(gè)$1匹配的應(yīng)該是表達(dá)式(\d)這個(gè)啊,這個(gè)不是1個(gè)數(shù)字嗎,為什么顯示結(jié)果$1匹配的確是3位呢??

求大神解答··


高洛峰
高洛峰

擁有18年軟件開(kāi)發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...

全部回覆(4)
學(xué)霸

第一問(wèn)你說(shuō)的換成2是指把{3}換成{2}嗎? 這樣最后結(jié)果只會(huì)是"1,23,34,56,56,32"

第二問(wèn)我的理解是$1指的是匹配出來(lái)的項(xiàng)中符合第一個(gè)小括號(hào)的內(nèi)容,匹配的項(xiàng)有"5632","4565632","2334565632",紅色部分就是符合第一個(gè)小括號(hào)的,然后在這幾個(gè)數(shù)的后面添加逗號(hào)。


三叔

問(wèn)題一:

(\d{3})+$ 的意思是連續(xù)匹配 3 個(gè)數(shù)字,且最后一次匹配以 3 個(gè)數(shù)字結(jié)尾。如果將數(shù)字變成 2,那么就是連續(xù)匹配 2 個(gè)數(shù)字且最后一次匹配也是 2 個(gè)數(shù)字,就像這樣 "1,23,34,56,56,32"

問(wèn)題二:

$1 并不是 1 ,因?yàn)?1 并不符合條件(?=(\d{3})+$),它要求一個(gè)數(shù)字(\d)后面的數(shù)字的個(gè)數(shù)是 3 的倍數(shù),只要滿(mǎn)足這種條件,(\d) 才能匹配成功,才能讓 $1 反向引用?!?2334565632” 這個(gè)例子中,只有第二,第五,第八個(gè)數(shù)字滿(mǎn)足條件


學(xué)霸

/(\d)(?=(\d{3})+$)/g , 這個(gè)正則表達(dá)式我是這么理解的:
先理解一個(gè)要點(diǎn):/(\d)(?=(\d{3})+$)/g
紅色的 \d 和 $ 之間,數(shù)字字符的個(gè)數(shù)是 3 的整數(shù)倍。

然后,把這個(gè)數(shù)字字符捕獲到分組中,在它后邊加個(gè)逗號(hào)“,”。 ?
效果如下:
'12334565632' ?
替換后:
'12,334,565,632'

用零寬斷言,是為了保證后面的字符不被消耗掉,這樣可以多次匹配。


三叔

網(wǎng)上這個(gè)方法用的是 零寬度正預(yù)測(cè)先行斷言,它斷言匹配的自身出現(xiàn)的位置d的后面能跟著匹配到1個(gè)或者n個(gè)3位數(shù)且剛好到結(jié)尾$。
1.那么如果我將前邊的字符串換成'2'的時(shí)候我發(fā)現(xiàn)也匹配成功了,不管你換的是字符串還是正則表達(dá)式,應(yīng)該都是不成功的。
2.$1匹配的就是表達(dá)式(d)這個(gè)。你可以把全局g去掉看一下:

'12334565632'.replace(/(\d)(?=(\d{3})+$)/, "$1,"); //"12,334565632"

題中分別匹配的是str[1],str[4],str[7] ,并在后面加上','


最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板