js 获取字符串中的数字

在前端开发中,我们经常会遇到需要从字符串中提取数字的情况。比如,从用户输入的表单中获取数字,或者从后端返回的数据中截取特定的数字等。在这篇文章中,我们将学习如何使用JavaScript来获取字符串中的数字。
方法一:使用正则表达式
正则表达式是一种强大的工具,可以用来匹配字符串中的特定内容。我们可以利用正则表达式来提取字符串中的数字。下面是一个简单的示例代码:
let str = "今天是2023年10月21日";
let numbers = str.match(/\d+/g);
console.log(numbers); // 输出 ["2023", "10", "21"]
在这段代码中,我们使用match方法配合正则表达式\d+来匹配字符串中的数字。\d表示数字字符,+表示匹配一个或多个数字字符,而g表示全局匹配。最后,我们通过numbers变量来存储匹配到的数字数组。
方法二:使用循环遍历字符串
除了使用正则表达式之外,我们还可以通过循环遍历字符串的每一个字符,并判断是否为数字来获取字符串中的数字。下面是一个示例代码:
let str = "abc123xyz456";
let numStr = "";
for (let i = 0; i < str.length; i++) {
if (!isNaN(parseInt(str[i]))) {
numStr += str[i];
}
}
console.log(numStr); // 输出 "123456"
在这段代码中,我们通过循环遍历字符串str的每一个字符,并判断是否为数字。如果是数字,则将该数字字符拼接到numStr字符串中。最终,我们可以得到字符串中的数字。
方法三:使用数组的filter方法
我们还可以将字符串转换为字符数组,然后利用数组的filter方法来过滤出数字字符。下面是一个示例代码:
let str = "abc123xyz456";
let numbers = str.split('').filter(char => !isNaN(parseInt(char))).join('');
console.log(numbers); // 输出 "123456"
在这段代码中,我们首先使用split('')方法将字符串转换为字符数组,然后使用filter方法遍历数组,过滤出数字字符。最后,通过join('')方法将过滤后的字符数组拼接成字符串。
方法四:使用replace方法
我们还可以使用replace方法配合正则表达式来提取字符串中的数字。下面是一个示例代码:
let str = "abc123xyz456";
let numbers = str.replace(/\D/g, '');
console.log(numbers); // 输出 "123456"
在这段代码中,我们使用replace方法配合正则表达式\D(非数字字符)来删除非数字字符,从而得到字符串中的数字。
总结
在本文中,我们介绍了四种常用的方法来获取字符串中的数字。无论是使用正则表达式、循环遍历字符串、数组的filter方法还是replace方法,都可以轻松地提取字符串中的数字。在实际开发中,根据具体的需求和情况选择合适的方法来处理字符串,可以提高代码的效率和可读性。
极客笔记