new RegExp('^\\d+[.]?([0,2,5,7]?[0,5])?$').test(236.70)
爲什麼此代碼不適用於123.20和123.70?雖然它成功地測試了以下輸入:正則表達式不正確地匹配數字
123.00, 123.05, 123.25, 123.50, 123.55, 123.75
new RegExp('^\\d+[.]?([0,2,5,7]?[0,5])?$').test(236.70)
爲什麼此代碼不適用於123.20和123.70?雖然它成功地測試了以下輸入:正則表達式不正確地匹配數字
123.00, 123.05, 123.25, 123.50, 123.55, 123.75
您傳遞值236.70
和最有可能的JavaScript剝離最後0
以來236.70 == 236.7
。然後,它不匹配正則表達式的最後部分,在那裏匹配[0,5]
的結尾。
而是將其強制轉換爲字符串以強制尾隨0
保持在那裏。
謝謝@fedorqui –
你的正則表達式有一些語法錯誤。在你匹配小數的部分,當它(可能)應該在裏面時,你有?
括號之外,並且你的角色類中有,
s,即使你沒有試圖匹配它們。
字符類別([]
)要求您列出要匹配的個別個字符。您還可以使用-
(例如,[0-9]
)獲得範圍的字符。
new RegExp('^\\d+[.]?([0257]?[05]?)$').test(236.70)
謝謝@Rocket Hazmat –
new RegExp('^([5-9 (00.50) VM37068:1 Uncaught SyntaxError:missing)在參數列表後 ([。])?([0257]?[05])?$' 爲什麼我得到這個錯誤? –
@vikkyDevil:'00.50'不是一個有效的數字。試試'0.50','0.5'或甚至僅僅'.5'。 –
嘗試傳遞字符串而不是數字:) –
除非打算匹配逗號,否則不應將逗號放在字符類中。正則表達式應該也是首選。 '/^\ d + \?([0257]?[05]?)$ /' – 4castle
謝謝@ 4castle,這有幫助 –