首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

輸入框限制 0~1.5 且最多兩位小數:正則 + JS 雙重驗證方案

     編輯:程式設計綜合問答

需求

使用者只能輸入 0 到 1.5 之間的數值,小數位數不超過 2 位 (如 0.00、1.50、1.23 合法;1.51、1.234、-0.1 非法)。

步驟 1:正則表達式攔截格式

// 僅允許數字、可選小數點、最多兩位小數
const regex = /^\d+(\.\d{1,2})?$/; 
// 或強制兩位小數:/^\d+(\.\d{2})?$/
  • \d+:整數部份至少一位
  • (\.\d{1,2})?:小數部份可選,1~2 位

步驟 2:數值範圍判斷

function validateInput(value) {
  if (!regex.test(value)) return false; // 格式不合法
  const num = parseFloat(value);
  return num >= 0 && num <= 1.5;      // 範圍檢查
}

完整事件綁定範例

input.addEventListener('blur', () => {
  if (!validateInput(input.value)) {
    showError('請輸入 0~1.5 之間的數字,最多兩位小數');
    input.focus();
  }
});

進階:輸入過程即時過濾

input.addEventListener('input', () => {
  // 移除非數字/小數點
  let v = input.value.replace(/[^\d.]/g, '');
  // 僅保留第一個小數點
  v = v.replace(/\.{2,}/g, '.');
  // 限制小數位數
  if (v.includes('.')) {
    const [int, dec] = v.split('.');
    v = int + '.' + dec.slice(0, 2);
  }
  input.value = v;
});

總結

「正則管格式、JS 管範圍、input 事件管體驗」三層防護,確保資料乾淨進入後端。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved