簡體   English   中英

十進制數字的正則表達式,可接受0到4位數字,但不包含字符

[英]Regular expression for decimal number accepting 0 to 4 digits but no characters

我正在嘗試設計一個正則表達式,它將接受最多4位十進制數。 我已經成功地做到了,當用戶鍵入文本框中。 現在,我正在嘗試驗證文本框的粘貼操作。 為此,我寫了一個jQuery函數

 function pasteNumber() {
        var reNumber = /\d*\.\d{0,4}/;
        var theString = window.clipboardData.getData('Text');

        if (reNumber.test(theString) == false) {
            alert("You are trying to paste an invalid Number!")
            return;
        }
        event.srcElement.value = theString
        return;
    }

我使用的正則表達式接受一個類似的值

44.aaaa

它不應該接受。 然后我嘗試將正則表達式更改為

/\d*\.\d{1,4}/

然后,它開始接受像

44.1aaa

我需要幫助來編寫一個正則表達式,它將接受類似的值

4.1
421.11
467.111
438904.1111
0.1

但不是

1234.a
489.a
435.aaa
412.1aaaa
1567.11a

簡而言之,不應有字符。

有什么建議嗎? 謝謝

您只缺少錨點^$

^\d*\.\d{0,4}$

觀看演示

但是,要避免匹配. 123. ,您可以將其增強為

^\d*\.\d{1,4}$

參見更新

至於錨 ,他們

完全不匹配任何字符。 而是,它們匹配字符之前,之后或之間的位置。 它們可用於將正則表達式匹配錨定在特定位置。 插入符^匹配字符串中第一個字符之前的位置。 應用^aabc匹配a ^babc根本不匹配,因為b不能在字符串開頭之后立即匹配,並由^匹配。

同樣, $匹配字符串中的最后一個字符。 c$匹配abc中的c ,而a$根本不匹配。

您只需要添加一些錨點並將整個小數部分分組(?:) ,並使其帶有可選的?

^\d+(?:\.\d{1,4})?$

^是字符串的開頭, $是字符串的結尾

觀看演示

暫無
暫無

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

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