获取字符串中的第一个数字
Get the First Number in a String using JavaScript
要获取字符串中的第一个数字:
- 使用该
search()
方法获取字符串中第一个数字的索引。 - 该
search
方法返回字符串中第一个匹配项的索引。 - 访问索引处的字符串。
索引.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
方法获取字符串中第一个数字的索引。
该方法采用的唯一参数是正则表达式。
正斜杠/ /
标记正则表达式的开始和结束。
方括号之间的部分称为字符类,匹配从到[]
的数字范围。0
9
下一步是使用括号表示法访问特定索引处的字符串,并将字符串转换为数字。
如果该
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的正则表达式速查表。