先看第乙個,**
var re = /^\d\-\d$/;var r1 = re.test('010-12345');
console.log(r1);
結果控制台給出false。問題在哪?
發現把逗號後的空格刪了就好了。習慣性在逗號後敲空格了,尤其是es6對物件進行擴充套件以後,以後不能這樣子了。
接下來看個比較難的,零寬正向斷言,不熟悉的話可以看看《js權威指南》和這篇文章。
在寫貨幣千分位格式化的時候,正確是這樣子的,先確定了零寬的位置:222335,然後匹配了前面的捕獲組:32,接下來把32換成了32, 。因為是全域性匹配,我們接著進行,先確定了零寬的位置:335,然後匹配了前面的捕獲組:222,接下來把222換成了222, 。我們接著進行,先確定了零寬的位置:335,然後前面匹配不上了,正則匹配結束。另外,對於87這樣的兩位數,匹配是不成功的,返回原數。
var a = '32222335'.replace(/(\d)(?=(\d)+$)/g, '$1,'); /*32,222,335
*/
倘若把零寬斷言的?=去了會怎麼樣呢,答案很明顯
var a = '32222335'.replace(/(\d)(\d)+$/g, '$1,'); /*32,*/
坑出現了
var a = '32222335'.replace(/(\d)(?=(\d)+)$/g, '$1,'); /*32222335
*/
把匹配字串結尾位置的$拿出來後,就成這樣子了。為什麼會這樣子,沒太搞明白。暫時的理解是匹配不成功,沒有字串替換掉。因為要求1-3個數字結尾,而結尾的後面還要有1個或以上的零寬斷言,這沒法實現,所以不成功。
真正要精通正則還是挺難的。
另,帶小數點的
functioncurrency (num)
num = number(num).tofixed(2).tostring().replace(/\d+/, function
(n) )+$)/g, function ($1) )
})return
num }
WKWebView的兩個坑點
蘋果在 wkwebview 中的 js runtime 裡事先注入了乙個 window.webkit.messagehandlers.giveuid.postmessage 方法,我們可以使用這個方法直接向 native 層傳值,異常方便。首先,我們要把乙個名為 giveuid 的 scriptme...
React兩個bug踩坑
import react from react 複製 console報錯render找不到,這是因為react已經把reactdom分離出來,這樣引用會出錯,改為 import react from react import reactdom from react dom 複製 後正常 consol...
關於sqlmap的兩個小坑
i春秋作家 lsa 0x00 概述 近日在利用sqlmap注入測試時遇到乙個奇怪的現象,高版本sqlmap無法檢測出注入,但是低版本的可以測出注入,並且能跑出資料不是誤報,經過對比測試和檢視sqlmap原始碼,發現兩個小坑。0x01 情景重現 注入點形式 json whereparams 可注入引數...