關於正規表示式 需要轉義

2022-01-11 18:07:55 字數 425 閱讀 7923

今天發現了乙個很奇怪的bug,是乙個檢查是否浮點數的js。這個js是我從別人的專案那裡拷貝過來的,當是浮點數的時候返回true,否則返回false。現在發現,只要中間有字元都當成浮點數了。像原來 56.6才是正確的,但56p9也算是正確的了~暈。原來的js是用正規表示式來檢查的,原來的正規表示式是 ^(-|\+)?\d*\.?\d+$ ,俺看了很久,也沒有看明白為什麼會出錯。。實在太不可思議了~後來,在網上找了一下其它的表示式,對比後才發現,那個「.」也應該要轉義才行的。不然,.的意思就是表示所有的字元~。。不過我又不明白了,這個js是從別人的已經完成的專案裡copy過來的,為什麼他們的專案能通過檢查呢,俺的就不行呢。。。

修改:只需要在「.」前加多乙個\

修改後如下:

function

fucisfloat(strfloat)

else

}

正規表示式轉義

除 d d 正確格式為 x x,x xx,x,xx,x,xx。驗證身份證號 15位或18位數字 d d 18 驗證一年的12個月 0?1 9 1 0 2 正確格式為 01 09 和 1 12 驗證乙個月的31天 0?1 9 1 2 0 9 30 31 正確格式為 01 09和1 31。整數 d 非負...

正規表示式 轉義

別字元 說明 匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 也匹配 n 或 r 要匹配 字元本身,請使用 標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 和 匹配前面的子表示式零次或多次。要匹配 字元,請使用 匹配前面的...

正規表示式需要轉義的字元

b 一 b 特殊字元 注釋 匹配輸入字串結尾的位置。若要匹配 字元本身,請使用 b 二 b 標記子表示式的開始和結束。可以捕獲子表示式以供以後使用。若要匹配這兩個字元,請使用 和 b 三 b 零次或多次匹配前面的字元或子表示式。若要匹配 字元,請使用 b 四 b 一次或多次匹配前面的字元或子表示式。...