關於在input標籤中輸入數字的問題(正則表達式)

在項目開發中遇到文本框限制輸入內容的問題,自己在網上找了找,又加了點自己的,簡略寫出了幾個,在這寫一下,希望對其他人有所幫助。


可在input標籤中根據情況加入屬性:

情況1:需要只能輸入數字:

οnkeyup='this.value=this.value.replace(/\D/gi,"")'

情況2:需要只能輸入小數(牽扯到金額等):

οnkeyup="this.value=(this.value.match(/\d+(\.\d{0,2})?/)||[''])[0]"
【正則限定必須先輸入數字,而後能且只能輸入一個小數點,小數點後可輸入兩位數字,需要的可以更改大括號中的數字2,這個數字用來限定小數點後可以有多少位數字】

情況3:需要只能輸入正負整數和0(牽扯到樓宇樓層的問題):

οnkeyup="this.value=(this.value.match(/(\-{0,1}\d{0,8})?/)||[''])[0]"
【正則限定文本框內只能在開頭輸入或不輸入一個符號,後面可跟8位數字,需要的可以更改大括號中的數字8】


備註:使用這個方法有可能會在谷歌瀏覽器中會導致無法使用鍵盤來控制鼠標左右移動。解決方法爲:將onkeyup中的內容寫到一個js方法當中,然後在onkeyup屬性中調用js方法。【這個解決方法是我在網上一個大神那找來的,特此說明一下,謝謝大神了】

<input type="text" οnkeyup="cky(this)">

function cky(obj){
    var t = (obj.value.match(/\d+(\.\d{0,2})?/)||[''])[0];
    if(obj.value!=t)
        obj.value=t;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章