检查一个字符串是否包含 JavaScript 中的数字

目录

Check if String contains at least one Number in JavaScript

  1. 检查一个字符串是否包含 JavaScript 中的数字
  2. 检查 String 是否仅包含 JavaScript 中的数字

检查一个字符串是否包含 JavaScript 中的数字

使用该RegExp.test()方法检查字符串是否至少包含一个数字,例如/\d/.test(str).

如果字符串至少包含一个数字,test方法将返回,否则返回。truefalse

索引.js
function containsNumber(str) { return /\d/.test(str); } console.log(containsNumber('hello 42 world')); // 👉️ true console.log(containsNumber('hello world')); // 👉️ false console.log(containsNumber('abc 123')); // 👉️ true

我们使用
RegExp.test
方法检查字符串是否包含数字。

正斜杠标记/ /正则表达式的开始和结束。

\d字符匹配从 0 到 9 的任何数字。

如果正则表达式在字符串中匹配,则test()方法返回,否则返回。truefalse

您还可以使用[0-9]范围来检查字符串是否包含数字。

索引.js
function containsNumber(str) { return /[0-9]/.test(str); } console.log(containsNumber('hello 42 world')); // 👉️ true console.log(containsNumber('hello world')); // 👉️ false console.log(containsNumber('abc 123')); // 👉️ true

\d我们没有使用特殊字符,而是使用了[0-9]字符类。

字符类用于指定我们要匹配的数字范围。

如果您不熟悉正则表达式,范围应该比字符更具[0-9]可读性。 \d

如果您在阅读正则表达式时需要帮助,请查看

MDN 提供的
正则表达式速查表。

它包含一个表格,其中包含每个特殊字符的名称和含义以及示例。

检查一个字符串是否包含数字使用match()

或者,您可以使用该match()方法。

match()如果字符串包含数字,该方法将返回一个匹配数组,否则null返回。

索引.js
function containsNumbers(str) { return str.match(/\d/) !== null; } console.log(containsNumbers('hello 123')); // 👉️ true console.log(containsNumbers('hello world')); // 👉️ false console.log(containsNumbers('abc 123')); // 👉️ true

String.match方法字符串与正则表达式进行匹配。

该方法返回一个包含匹配项(如果有)或未null找到匹配项的数组。

我们的函数检查match()方法是否没有返回null以获得布尔结果。

如果您需要获取匹配项 或 的数组null,请删除比较。

索引.js
function containsNumbers(str) { return str.match(/\d/g); } // 👇️ [ '1', '2', '3' ] console.log(containsNumbers('hello 123')); // 👇️ null console.log(containsNumbers('hello world')); // 👇️ [ '1', '2', '3' ] console.log(containsNumbers('abc 123'));

第一个和第三个字符串包含数字,因此该match()方法返回一个包含匹配项的数组。

第二个字符串不包含任何数字,因此该方法返回null

检查 String 在 JavaScript 中是否只包含数字

使用该test()方法检查字符串是否仅包含数字,例如
/^[0-9]+$/.test(str).

如果字符串仅包含数字,则
test方法将返回,否则返回。truefalse

索引.js
function containsOnlyNumbers(str) { return /^[0-9]+$/.test(str); } console.log(containsOnlyNumbers('1234')); // 👉️ true console.log(containsOnlyNumbers('123hello123')); // 👉️ false console.log(containsOnlyNumbers('123.5')); // 👉️ false
如果您需要匹配小数或逗号分隔的数字,请向下滚动到下一个代码片段。

我们使用
RegExp.test
方法来检查字符串是否只包含数字。

true如果正则表达式在字符串中匹配,则
该方法返回,
false否则返回。

正斜杠标记/ /正则表达式的开始和结束。

插入符^匹配输入的开头,美元符号$
匹配输入的结尾。

方括号之间的部分[]称为字符类,匹配从0到的数字范围9

加号+与前面的项目(0-9范围)匹配 1 次或多次。

请注意,0-9也可以使用\d(数字)特殊字符来编写范围。

索引.js
function containsOnlyNumbers(str) { return /^\d+$/.test(str); } console.log(containsOnlyNumbers('1234')); // 👉️ true console.log(containsOnlyNumbers('123hello123')); // 👉️ false

特殊字符\d相当于使用匹配任何数字[0-9],但我发现该范围更具可读性和直观性。

匹配由字符分隔的数字,例如十进制或逗号分隔

如果您还需要匹配小数或逗号分隔的数字,请在方括号之间添加您想要匹配的字符[]

索引.js
function containsOnlyNumbers(str) { return /^[0-9.,]+$/.test(str); } console.log(containsOnlyNumbers('1234')); // 👉️ true console.log(containsOnlyNumbers('123hello123')); // 👉️ false console.log(containsOnlyNumbers('123.5')); // 👉️ true console.log(containsOnlyNumbers('123,5')); // 👉️ true

我们在方括号之间添加了一个点和一个逗号[]以匹配这些字符。

如果您的用例需要其他字符,只需将它们添加到方括号之间即可。

您还可以在正则表达式中使用捕获组。

以下正则表达式检查字符串是否仅包含数字或由句点分隔的数字。

索引.js
function containsOnlyNumbers(str) { return /^([0-9]+\.)*([0-9]+)$/.test(str); } console.log(containsOnlyNumbers('1234')); // 👉️ true console.log(containsOnlyNumbers('12.34')); // 👉️ true console.log(containsOnlyNumbers('12.34.5')); // 👉️ true console.log(containsOnlyNumbers('12,34')); // 👉️ false console.log(containsOnlyNumbers('12-34-56')); // 👉️ false

括号()称为捕获组。

我们使用句点作为分隔符,但您可以使用任何其他值,例如逗号。

索引.js
function containsOnlyNumbers(str) { return /^([0-9]+,)*([0-9]+)$/.test(str); } console.log(containsOnlyNumbers('1234')); // 👉️ true console.log(containsOnlyNumbers('12.34')); // 👉️ false console.log(containsOnlyNumbers('12.34.5')); // 👉️ false console.log(containsOnlyNumbers('12,34')); // 👉️ true console.log(containsOnlyNumbers('12,34,56')); // 👉️ true

变量字符在第一个右括号 – 之前指定
/^([0-9]+<character>)*([0-9]+)$/

您可以将字符切换为任何其他值,例如空格。

索引.js
function containsOnlyNumbers(str) { return /^([0-9]+ )*([0-9]+)$/.test(str); } console.log(containsOnlyNumbers('1234')); // 👉️ true console.log(containsOnlyNumbers('12 34')); // 👉️ true console.log(containsOnlyNumbers('12 34 5')); // 👉️ true console.log(containsOnlyNumbers('12,34')); // 👉️ false console.log(containsOnlyNumbers('12-34-56')); // 👉️ false

如果您在阅读正则表达式时需要帮助,请查看

MDN 提供的
正则表达式速查表。

它包含一个表格,其中包含每个特殊字符的名称和含义以及示例。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: