📅  最后修改于: 2023-12-03 14:42:30.836000             🧑  作者: Mango
在开发的过程中,我们通常需要从字符串中提取数字信息。然而,字符串中可能包含非数字字符,这会干扰我们的操作。本文将介绍如何使用 JavaScript 从字符串中保留数字字符,并删除非数字字符。
我们可以使用正则表达式来提取字符串中的数字字符,然后将它们合并为一个新的字符串。以下是一个示例代码片段:
const str = "My age is 26 years old, and my salary is $4000 per month.";
const numStr = str.match(/\d+/g).join('');
console.log(numStr); // "26 4000"
上述代码中,我们使用 match()
方法和正则表达式 /d+/g
来匹配字符串中的数字字符,并将它们存储在一个数组中。然后,我们使用 join()
方法将数组中的数字字符合并为一个新的字符串。最终,我们可以使用 console.log()
来输出结果。
然而,这个方法存在一个问题,就是它会将数字之间的空格保留下来。接下来,我们将介绍一个更好的方法来解决这个问题。
我们可以使用循环和 ASCII 码来遍历字符串中的每个字符,并将数字字符存储在一个新的字符串中。以下是一个示例代码片段:
const str = "My age is 26 years old, and my salary is $4000 per month.";
let numStr = '';
for(let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
if(charCode >= 48 && charCode <= 57) {
numStr += str.charAt(i);
}
}
console.log(numStr); // "264000"
上述代码中,我们遍历字符串中的每个字符,并使用 charCodeAt()
方法获取 ASCII 码。如果 ASCII 码处于数字字符的范围内(即 48 到 57),我们将字符添加到新的字符串中。最终,我们使用 console.log()
来输出结果。
本文介绍了两种方法来从字符串中保留数字字符,并删除非数字字符。第一种方法使用了正则表达式,而第二种方法使用了循环和 ASCII 码。你可以根据自己的需要选择其中一种方法来实现字符串操作。