簡體   English   中英

Javascript 正則表達式 integer 帶小數的數字

[英]Javascript regex integer number with decimal

我正在嘗試為以下條件編寫正則表達式:

允許輸入最多 1 位小數,如果我以 integer 0 開頭; 下一個必須是十進制,否則輸入的任何其他數字將刪除 0(整數)

我提供的正則表達式是/(^$)|(^[0-9]+(\.([0-9]{1})?)?$)/它接受小數點后 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.

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