📜  数字的正则表达式 - Javascript (1)

📅  最后修改于: 2023-12-03 14:54:52.747000             🧑  作者: Mango

数字的正则表达式 - JavaScript

正则表达式是一种强大的字符串处理工具,可以用来验证输入的格式、搜索和替换字符串等操作。在 JavaScript 中,使用正则表达式来匹配数字可以帮助我们处理数字输入、验证数字格式等问题。

匹配整数

正整数的正则表达式:

/^[1-9]\d*$/

解释:

  • ^ 表示字符串的开始。
  • [1-9] 匹配 1-9 中的任何一个数字。
  • \d* 匹配任意数量的数字。
  • $ 表示字符串的结尾。

示例:

const pattern = /^[1-9]\d*$/;
console.log(pattern.test('123')); // true
console.log(pattern.test('0')); // false
匹配正数

正数的正则表达式:

/^[1-9]\d*\.?\d*$/

解释:

  • ^ 表示字符串的开始。
  • [1-9] 匹配 1-9 中的任何一个数字。
  • \d* 匹配任意数量的数字。
  • \.? 匹配可选的小数点。
  • \d* 匹配任意数量的数字。
  • $ 表示字符串的结尾。

示例:

const pattern = /^[1-9]\d*\.?\d*$/;
console.log(pattern.test('0.123')); // true
console.log(pattern.test('123')); // true
console.log(pattern.test('-123')); // false
console.log(pattern.test('123.')); // true
console.log(pattern.test('0')); // false
匹配负数

负数的正则表达式:

/^-?[1-9]\d*\.?\d*$/

解释:

  • ^ 表示字符串的开始。
  • -? 匹配可选的负号。
  • [1-9] 匹配 1-9 中的任何一个数字。
  • \d* 匹配任意数量的数字。
  • \.? 匹配可选的小数点。
  • \d* 匹配任意数量的数字。
  • $ 表示字符串的结尾。

示例:

const pattern = /^-?[1-9]\d*\.?\d*$/;
console.log(pattern.test('-123')); // true
console.log(pattern.test('123')); // true
console.log(pattern.test('0')); // true
console.log(pattern.test('0.123')); // true
console.log(pattern.test('123.')); // true
console.log(pattern.test('1.23e+3')); // false
匹配科学计数法表示的数字

科学计数法表示的数字的正则表达式:

/^-?[1-9]\d*\.?\d+([eE][-+]?[1-9]\d*)?$/

解释:

  • ^ 表示字符串的开始。
  • -? 匹配可选的负号。
  • [1-9] 匹配 1-9 中的任何一个数字。
  • \d* 匹配任意数量的数字。
  • \.? 匹配可选的小数点。
  • \d+ 匹配一个或多个数字。
  • ([eE][-+]?[1-9]\d*)? 匹配可选的科学计数法表示,其中 [eE] 匹配 eE[-+]? 匹配可选的符号, [1-9]\d* 匹配一个或多个非零数字。
  • $ 表示字符串的结尾。

示例:

const pattern = /^-?[1-9]\d*\.?\d+([eE][-+]?[1-9]\d*)?$/;
console.log(pattern.test('123.45')); // true
console.log(pattern.test('1.23e+3')); // true
console.log(pattern.test('-1.23E-4')); // true
console.log(pattern.test('123.')); // false
console.log(pattern.test('.45')); // false
console.log(pattern.test('1.2e')); // false
总结

使用正则表达式来匹配数字可以解决很多数字格式处理的问题。上面提供的几个例子是常见的数字格式,但不一定涵盖所有情况,根据实际需要,可以根据这些例子修改或衍生出更复杂的正则表达式。