使用 JavaScript 获取字符串中的第一个数字

获取字符串中的第一个数字

Get the First Number in a String using JavaScript

要获取字符串中的第一个数字:

  1. 使用该search()方法获取字符串中第一个数字的索引。
  2. search方法返回字符串中第一个匹配项的索引。
  3. 访问索引处的字符串。
索引.js
const str = 'one 2 three 4'; const index = str.search(/[0-9]/); console.log(index); // 👉️ 4 const firstNum = Number(str[index]); console.log(firstNum); // 👉️ 2

我们使用
String.search
方法获取字符串中第一个数字的索引。

该方法采用的唯一参数是正则表达式。

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

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

下一步是使用括号表示法访问特定索引处的字符串,并将字符串转换为数字。

如果该search方法不匹配字符串中的任何数字,它将返回-1
索引.js
console.log('test'.search(/[0-9]/)); // 👉️ -1

如果您然后尝试访问 index 处的字符串-1,您会undefined
返回。

索引.js
console.log('test'[-1]); // 👉️ undefined

如果您必须处理这种情况,请使用if语句。

索引.js
const str = 'one 2 three 4'; const index = str.search(/[0-9]/); if (index !== -1) { console.log('✅ String contains at least 1 number'); const firstNum = Number(str[index]); // firstNum is defined only here } else { console.log('⛔️ String does not contain any numbers'); }

如果方法至少匹配字符串中的数字,我们只声明firstNum变量。search()1

我们使用字符类 of[0-9]来匹配一系列数字。

但是,您可能还会看到使用该\d字符的示例。

索引.js
const str = 'one 2 three 4'; const index = str.search(/\d/); console.log(index); // 👉️ 4 const firstNum = Number(str[index]); console.log(firstNum); // 👉️ 2

\d特殊字符匹配到范围内的0任何数字9指定\d字符与指定范围相同[0-9]

您可以使用任何您认为更具可读性的方法。

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

来自 MDN的
正则表达式速查表。