📅  最后修改于: 2023-12-03 15:36:17.656000             🧑  作者: Mango
在 JavaScript 中,我们经常需要从字符串中获取数字。这可能是因为我们需要将用户输入转换为数字,或者从某个字符串中提取有关数字的信息。
以下是几种从字符串中获取数字的方法:
parseInt()
方法将字符串转换为整数。它从字符串的首字符开始解析,直到遇到一个非数字字符为止。
const str = '1234';
const num = parseInt(str);
console.log(num); // 输出: 1234
注意,如果字符串的第一个非空格字符不是数字或正负号,则 parseInt()
方法会返回 NaN
。(可以在 parseInt 方法中设置第二个参数,代表将字符串解析为多少进制的数字)。
parseFloat()
方法将字符串转换为浮点数(小数)。与 parseInt()
方法类似,它从字符串的首字符开始解析,直到遇到一个非数字字符为止。
const str = '3.14';
const num = parseFloat(str);
console.log(num); // 输出: 3.14
注意,如果字符串的第一个非空格字符不是数字或正负号,则 parseFloat()
方法会返回 NaN
。
使用正则表达式可以提取字符串中的数字。以下示例使用 match()
方法和正则表达式 /(\d+)/g
从字符串中获取所有数字:
const str = 'I have 3 apples and 2 bananas';
const numbers = str.match(/\d+/g);
console.log(numbers); // 输出: [ '3', '2' ]
正则表达式 /(\d+)/g
匹配所有的数字,并返回一个数字的数组。
在 JavaScript 中,字符可以使用 Unicode 编码表示。如果我们知道每个数字在字符串中的位置,我们可以使用 charCodeAt()
方法获取它的 Unicode 编码,然后将其转换为数字。
以下示例使用 charCodeAt()
方法从字符串中获取单个数字:
const str = '123';
const num = str.charCodeAt(0) - 48; // 48 是 '0' 的 Unicode 编码
console.log(num); // 输出: 1
由于从字符串中获取数字的方式有多种,我们可以根据需求来选择最适合的方法。如果需要从整个字符串中获取数字,最好使用 parseInt()
或 parseFloat()
方法。如果需要获取字符串中所有的数字,则可以使用正则表达式。最后,如果我们知道数字在字符串中的位置,则可以使用 charCodeAt()
方法。
希望这篇文章对你有所帮助!