javascript过滤特殊符号仅保留数字的封装函数

项目需求

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 标志表示全局匹配,即替换所有匹配项,而不仅仅是第一个。'' 是替换字符串,因为它是一个空字符串,所以实际上是删除了匹配项,即非数字字符。


@漏刻有时

猜你喜欢

转载自blog.csdn.net/weixin_41290949/article/details/132754732