最近有个小需求,要求格式化数字之后,遇整取整,也就是 100.00
要展示 100
。
这个功能也好做,没多想,直接在格式化后面添加:
replace(/(?<=\.\d*)0+$|\.0+$/, '')
完美展示,发版~
但是!!!!!
问题就出现了,这是一个 app 插件程序,在电脑和 android 程序中都没问题。然后身旁的小伙伴拿个 iPhone 过来跟我说程序打不开了。
我郁闷了,手机里面还没有报错,一脸懵。
先是回退了一个版本,好了~ 嗯,那就是这个版本修改的问题。
找了个 Mac,用 Safari 打开本地浏览,果然发现了问题:
SyntaxError:Invalid regular expression:invalid group specifier name
报了这个错误,还就是刚才写的正则问题。
查了一下,苹果不支持正则断言。。。
果不其然,在2023年,Safari 完美接替了 IE 的存在~
于是乎,改正则呗:
replace(/(\.[1-9]+)0+$|\.0*$/, '$1')
需要注意,这里就不能简单的清空了,就需要将分组的内容回填,主要为了匹配非零小数位。
然后,一切安好~~~
最后,吐槽一下 Safari,这个货啥时候淘汰呀~~~
文章评论