鍍金池/ 問(wèn)答/HTML/ JS正則表達(dá)式“只允許輸入兩位小數(shù)”應(yīng)該怎么寫(xiě)

JS正則表達(dá)式“只允許輸入兩位小數(shù)”應(yīng)該怎么寫(xiě)

允許輸入為0.01、1.01等

回答
編輯回答
吢涼
  1. 題目若理解為最多只能輸入兩位小數(shù),則用/^(-)?(0|[1-9]\d*)(\s|$|\.\d{1,2}\b)/ 完美匹配以下情況:

    var reg = /^(-)?(0|[1-9]\d*)(\s|$|\.\d{1,2}\b)/;
    reg.test('0');   //true
    reg.test('0.1');  //true
    reg.test('1.23');  //true
    reg.test('50');  //true
    reg.test('-1.23'); //true
    reg.test('-0.3'); //true
    
    reg.test('00'); //false
    reg.test('-00'); //false
    reg.test('08'); //false
    reg.test('0.123'); //false
    reg.test('1.123'); //false
  2. 若理解為必須輸入兩位小數(shù), 則用 /^(-)?(0|[1-9]\d*)\.\d{2}$/

    var reg = /^(-)?(0|[1-9]\d*)\.\d{2}$/;
    reg.test('0.12');  //true
    reg.test('1.12'); //true
    
    reg.test('5.123'); //false
    reg.test('0.123'); //false
    reg.test('00.12'); //false
    reg.test('01.12'); //false
2017年4月1日 11:41
編輯回答
冷溫柔

onkeyup="value=value.replace(/^(-)(d+).(dd).$/,'$1$2.$3')"
輸入第三位小數(shù) 自動(dòng)刪除 第三位小數(shù)

2017年12月21日 09:54
編輯回答
懷中人

Strig.split('.')[1].length限制一下

2018年8月26日 02:03
編輯回答
吢丕

百度不是一堆嗎。。。。
https://www.jb51.net/article/...
https://blog.csdn.net/li16062...
然后再自己看看哪個(gè)簡(jiǎn)便

2018年8月27日 00:27
編輯回答
陌離殤
/^\d+(\.\d{1,2})?$/

樓上的怎么都不考慮如果不輸入小數(shù)的情況

2018年1月2日 13:31
編輯回答
淚染裳
input.onkeypress = function (e) {
    let enablePoint = true;
    if (this.value.indexOf('.') != -1) {
        enablePoint = false;
    }
    if ((e.keyCode < 48 || e.keyCode > 57) && e.keyCode !== 46) {
        console.log('非法字符');
        return false;
    }
    if (e.keyCode === 46 && !enablePoint) {
        console.log('已有小數(shù)點(diǎn)');
        return false;
    }
    if (this.value.match(/^\d*\.\d\d$/g)) {
        console.log('小數(shù)點(diǎn)后只允許兩位');
        return false;
    }
    return true;
}
2017年9月1日 20:29