輸入格式:正整數 或 正整數-正整數(範圍),且第二個數 ≤ 第一個數。例如 5、1-10 合法,10-1 非法。
正則難以直接比較兩個數字大小,尤其數字位數不固定時。
function validateRange(input) {
// 1. 格式檢查
if (!/^\d+(-\d+)?$/.test(input)) return false;
// 2. 分割
const parts = input.split('-').map(Number);
if (parts.length === 1) return parts[0] > 0; // 單數字
// 3. 範圍邏輯
return parts[0] > 0 && parts[1] > 0 && parts[1] <= parts[0];
}
需分情況列舉位數,極其繁瑣,不具通用性。