[英]Javascript regex integer number with decimal
我正在嘗試為以下條件編寫正則表達式:
允許輸入最多 1 位小數,如果我以 integer 0 開頭; 下一個必須是十進制,否則輸入的任何其他數字將刪除 0(整數)
我提供的正則表達式是/(^$)|(^[0-9]+(\.([0-9]{1})?)?$)/
它接受小數點后 1 位,但我不能完成剩下的部分。
傳遞的數字-> 1.3
4.5
0.4
失敗的號碼---->
004
如果數字以 0 開頭,則下一個字符只能是小數 例如,
0.5 是通過
005是失敗的
嘗試這個:
^([1-9]+\d*.?\d?)|^(0.\d)
如果沒有,請查看評論並嘗試更好地舉例說明
試試這個正則表達式:
^([0]{1}(\.[0-9]+))$|^([1-9]{1}|[1-9][0-9]+)$
調整的正則表達式:我現在已經根據需要調整了正則表達式:所有以 0 開頭的數字必須跟在逗號后面,例如 0.2 或 0.0002 被接受。 不接受 02 或 00002
好的,你想找到不是以0開頭的integer數字,然后找到十進制? 您的代碼是: /(^$)|(^[0-9]+(\.([0-9]{1})?)?$)/
案例一:integer [1-9]\d*
案例2:十進制
//match 5.0
patt = \d+\.\d+
//Match 5.1xxxx, 5.2xxx, etc.
patt = \d+\.[1-9]\d*
//match 5.0xxx
patt = \d+\.0\d+
//combine all of them
patt = ([1-9]\d*|\d+\.[1-9]\d*|\d+\.0\d+)
//Final
patt = /(^$)|(([1-9]\d*|\d+\.[1-9]\d*|\d+\.0\d+)?$)/
我將在上面解釋一些模式:
\d == [0-9] //match 1 character between 0 and 9
\d* == \d{0,} //match 0 or more character
\d+ == \d{1,} //match at least one character
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.