簡體   English   中英

如何創建具有以下條件的正則表達式

[英]How to create a Regular Expression with the following conditions

數字輸入不應超過 8 位(計算小數點兩邊的數字)。 示例:123456.78 或 0.12 或 1.23

數值應該能夠接受負數。 示例:-0.8 或 -1.23

最多允許 2 個十進制數

數值不應接受輸入框中的任何字母

我嘗試創建以下正則表達式,但我無法非常有效地弄清楚

^-?[0-9]\d*(\.\d+)?[,8]$

常規經驗

要匹配所需的位數而不是更多,請在模式的開頭先行(?:\d\.?) 1 到 8 次,然后匹配\d*(?:\.\d{1,2})?$匹配一個數字,如果包含小數,則最多包含 2 個小數字符:

^-?(?=(?:\d\.?){1,8}$)\d*(?:\.\d{1,2})?$

https://regex101.com/r/rQMRVX/5

(除非你需要捕獲小數部分,它可以是一個非捕獲組如上)

你可以試試這個

^-?\d{1,8}.?\d{1,2}$

鏈接: https://regex101.com/r/x7yw5M/2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM