以下是一个解决方法的示例代码:
function getNumberFromString(str) {
let numberStr = '';
let isNegative = false;
let hasDecimalPoint = false;
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === '-') {
isNegative = true;
} else if (char === '.') {
hasDecimalPoint = true;
} else if (char >= '0' && char <= '9') {
numberStr += char;
} else {
break;
}
}
let number = parseInt(numberStr);
if (hasDecimalPoint) {
number = parseFloat(numberStr);
}
if (isNegative) {
number *= -1;
}
return number;
}
// 示例用法
const str = 'The price is $19.99';
const price = getNumberFromString(str);
console.log(price); // 输出: 19.99
上述示例代码可以从一个字符串中提取出数字,并将其作为浮点数返回。这个解决方法遍历字符串的每个字符,如果遇到数字字符,则将其添加到一个字符串中。如果遇到负号或小数点,则相应地设置标志变量。最后,使用parseInt或parseFloat将提取的字符串转换为整数或浮点数,并根据标志变量进行调整。