js 如何在字符串中取出数字
时间: 2024-09-28 19:06:30 浏览: 37
在JavaScript中,可以从字符串中提取数字,可以使用正则表达式结合match()、replace()或split()函数来完成。这里提供几种常见的方式:
1. **match() + parseInt()**: 使用正则表达式匹配数字并转换为整数。
```javascript
function extractNumber(str) {
const match = str.match(/\d+/); // 匹配连续的数字字符
return match ? parseInt(match[0], 10) : NaN; // 返回第一个匹配项,如果没有就返回NaN
}
```
2. **replace() + parseFloat()**: 如果需要浮点数,可以用`parseFloat()`替换`parseInt()`。
```javascript
const extractFloat = (str) => {
const numStr = str.replace(/[^\d.-]/g, ''); // 移除非数字字符
return numStr ? parseFloat(numStr) : NaN;
};
```
3. **split('.') 和 split('-')**: 对于包含小数点或负号的情况,可以先按这些分隔符拆分,然后取每个部分的第一个元素。
```javascript
function extractNumbers(str) {
let numStrs = str.split('.');
if (numStrs.length > 1) {
numStrs = [numStrs[0], ...numStrs.slice(1).map(Number)];
}
numStrs = numStrs.concat(str.split('-').filter(Boolean));
return numStrs.map(n => Number.isNaN(n) ? n : Number(n)).filter(n => !isNaN(n)); // 筛选出非数字项
}
```
阅读全文