项目需求
js过滤字符串,如"-,-,-,-,-,-,-,-,9",只保留数字的封装函数。
你可以使用 JavaScript 的 split
函数和 map
函数来达成这个目标。以下是完成这个任务的封装函数的示例:
不完全过滤
function filterNumbers(str) {
// 使用 split 函数将字符串分割为数组,分割标志为逗号
let arr = str.split(",");
// 使用 map 函数对数组中的每个元素进行处理,处理方式为删除所有非数字字符并转为数字
let filtered = arr.map(item => Number(item.replace(/[^0-9]/g, "")));
// 使用 join 函数将处理后的数组重新组合为字符串,元素之间以逗号分隔
let result = filtered.join(",");
return result;
}
let str = "-,-,-,-,-,-,-,-,9";
console.log(filterNumbers(str)); // 输出: ",9"
在这个函数中,split(",")
将字符串分割为数组,每个元素是由逗号分隔的部分。然后,map
对数组中的每个元素进行处理:item.replace(/[^0-9]/g, "")
会删除每个元素中所有的非数字字符。最后,join(",")
将处理后的数组重新组合为字符串。
完全过滤
如果你想要从字符串中删除所有的非数字字符并且不想要逗号,你可以使用JavaScript的replace
方法和正则表达式。以下是一个示例代码,该代码将删除字符串中的所有非数字字符:
let str = "-,-,-,-,-,-,-,-,9";
let newStr = str.replace(/[^0-9]/g, '');
console.log(newStr); // 输出: "9"
在这个代码中,replace
方法的参数是一个正则表达式 [^0-9]
,它匹配所有非数字字符。g
标志表示全局匹配,即替换所有匹配项,而不仅仅是第一个。''
是替换字符串,因为它是一个空字符串,所以实际上是删除了匹配项,即非数字字符。
@漏刻有时