我試圖通過javascript捕捉一個欄位的輸入。
我需要獲得最多3個數字和一個點。
我試著用這個詞組。[^d{0,3}.{0,1}d{0,3}]
但是它不太行得通,我真的不知道如何在全域范圍內獲取數字值,所以它實際上是最大的3個數字。
333 //ok
333 //ok
33.1 /ok
3.33 /ok
3.3. //not ok。
3.333 //not ok.
3333. //not ok[/span]。
3.. //not ok。
. //not ok.
希望有人能在這里給我一個提示。
uj5u.com熱心網友回復:
我對regex很不擅長,但想出了下面這樣的辦法。也許有一個更優雅的方法,但....
^d{0,3}$|^d{2}[. ]d{1}$|^d{1}[.]d{1,2}$
適用于最大3個數字,所以3和33也是可以的
。uj5u.com熱心網友回復:
對于提交時(最終)的驗證,你可以使用
^(?=.{3,4}$)d (?: .d )?$
請看regex演示。它匹配
^- 字串的開始(?=.{3,4}$)- 這要求字串只有三個或四個字符 。
d (?:.d )?--一個或多個數字,然后是一個.和一個或多個數字的可選出現。由于d、.和d必須至少匹配一次,最小限制為3是合理的,由于只能匹配一個點,d中的任何一個都可以匹配一個或兩個數字,但總共只能匹配三個 。
$--字串的結束。
對于實時輸入文本驗證,你可以使用
^(? :d{1,3}|d(?:d?.d? |.d{2})$
請看regex演示。詳情:
^- 字串的開始(?:- 一個組的開始。d{1,3}- 一個、兩個或三個數字 。
|--或d- 一個數字 。
(?:d?.d?|.d{2})- 一個非捕獲組,與以下任何一個匹配d?.d?- 一個可選的數字,一個.,然后一個可選的數字 。
|--或 。
.d{2}-.,然后是兩個數字 。
)--組的結束$--字串的結束。uj5u.com熱心網友回復:
你也可以在一個非捕獲組中匹配所有的3個變化:
^(?:d{3}|d.dd|dd.d)$
或者首先匹配一個單數,然后是2個可選的點和2個數字,或者一個單數,可選的點和一個單數的變化:
^d(?:?dd|d。?d)$
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311778.html
標籤:
下一篇:如何通過ID呼叫檔案是否存在
