例如:
numsplit
(1234567.1234
)// 結果 1,234,567.1234
實現:
function
numsplit
(num)
var n =
1234567.1234
console.
log(
numsplit
(n))
解析:
?!
?=
?斷言部分
拆分正則:
/.(?!\d)/斷言:匹配後面不是數字的字元
/(\d)+/
匹配數字個數是3的倍數的字串(貪婪模式:盡可能匹配長的)
/.(?=abc)/
斷言:匹配後面是abc的字元
/\b/
匹配非單詞邊界
斷言的內容,不會被作為結果返回,即只用於匹配規則,不會被replace替換
組合以上4個正則:
/\b(?=(\d)+(?!\d))/
匹配乙個邊界,邊界後面是(數字個數是3的倍數的字串,該字串後面是乙個非數字的字元)
這個正則可以替換整數數字,如果是數字有小數部分,則同樣會為小數部分增加逗號
繼續改進,在前面增加規則,前面的內容不能包含小數點.
/(?
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
經典題目 正規表示式匹配
引例 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配。本題可通過動態規劃解決...
類和正規表示式
面對帝鄉的三要素 封裝,繼承,多型 封裝對類的資料的賦值 內部呼叫對外部的使用者都是透明的,這使得類成為乙個容器,裡面包含著類的資料和方法。繼承乙個類可以派生出子類,這個父類的屬性 方法自動被子類繼承。多型乙個介面 多種實現。乙個父類派生出不同的子類,且每個子類在繼承父類的方法的同時,又對父類的方法...