古詩詞大全網 - 成語用法 - js正則表達式

js正則表達式

要驗證輸入是否為大於等於1、小於等於20000000的整數(可帶兩位小數),您可以使用以下正則表達式進行驗證:

^(?!0+(?:\.0+)?$)(?:[1-9]\d{0,6}(?:\.\d{1,2})?|20000000(?:\.0{1,2})?)$

解釋壹下這個正則表達式的含義:

- `^` 表示匹配開始位置。

- `(?!0+(?:\.0+)?$)` 使用零寬負向前瞻來排除純零或多個零後面可能緊跟小數點和零的情況。即不允許輸入 "0" 或 "0.00"。

- `(?:[1-9]\d{0,6}(?:\.\d{1,2})?|20000000(?:\.0{1,2})?)` 表示兩種可能的情況:

- `[1-9]\d{0,6}(?:\.\d{1,2})?` 表示大於等於1且小於等於19999999的整數,可以帶兩位小數。其中:

- `[1-9]` 匹配非零的個位數。

- `\d{0,6}` 匹配0到6位數字。

- `(?:\.\d{1,2})?` 表示可選的小數部分,包括小數點和1到2位小數。

- `20000000(?:\.0{1,2})?` 表示20000000這個特定整數,可以帶兩位小數。

- `$` 表示匹配結束位置。

下面是壹個使用 JavaScript 的示例代碼,演示如何使用正則表達式進行驗證:

function validateInput(input) {

const regex = /^(?!0+(?:\.0+)?$)(?:[1-9]\d{0,6}(?:\.\d{1,2})?|20000000(?:\.0{1,2})?)$/;

return regex.test(input);

}

// 測試示例

console.log(validateInput("1")); // true

console.log(validateInput("1.23")); // true

console.log(validateInput("20000000")); // true

console.log(validateInput("20000000.00")); // true

console.log(validateInput("0")); // false

console.log(validateInput("0.00")); // false

console.log(validateInput("20.123")); // false

在上面的示例中,`validateInput()` 函數接受壹個字符串參數 `input`,並使用 `test()` 方法來檢測輸入是否匹配正則表達式。函數將返回布爾值,表示輸入是否有效。

您可以根據需要修改示例中的測試用例,以驗證不同類型的輸入。