js 字符串 只显示数字

1. 使用正则表达式的match方法

  • 原理 :正则表达式\d+用于匹配一个或多个数字。match方法会在字符串中查找与正则表达式匹配的部分,并返回一个包含所有匹配结果的数组。

  • 示例代码

    let str = "abc123def456";
    let numbers = str.match(/\d+/g);
    console.log(numbers);
    // 输出: ["123", "456"]

2. 使用replace方法结合正则表达式和函数

  • 原理replace方法可以用指定的内容替换字符串中与正则表达式匹配的部分。通过传入一个函数作为替换参数,可以在函数中提取匹配的数字并返回。

  • 示例代码

    let str = "abc123def456";
    let result = "";
    str.replace(/\d+/g, function(match) {
    result += match;
    return "";
    });
    console.log(result);
    // 输出: "123456"

3. 使用split方法结合正则表达式

  • 原理:先使用正则表达式将字符串分割成数组,然后过滤掉非数字的元素,最后将数字元素合并成一个字符串。

  • 示例代码

    let str = "abc123def456";
    let parts = str.split(/\D+/);
    let numbers = parts.filter(Boolean).join("");
    console.log(numbers);
    // 输出: "123456"

4. 遍历字符串逐个判断字符是否为数字

  • 原理 :通过遍历字符串的每个字符,使用isNaN函数判断字符是否为数字,如果是数字则将其添加到结果字符串中。

  • 示例代码

    let str = "abc123def456";
    let result = "";
    for (let i = 0; i < str.length; i++) {
    if (!isNaN(str[i])) {
    result += str[i];
    }
    }
    console.log(result);
    // 输出: "123456"

相关推荐
Mh10 分钟前
虚拟滚动真的比普通滚动性能更好吗?
前端·javascript·性能优化
余额瞒着我当琳1 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
坐吃山猪1 小时前
WebClient内存配置解析
开发语言·springboot·webflux
jdksjw2 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python
Zach_菠萝侠2 小时前
【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现
开发语言·安全·deepseek
SL-staff3 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
kyriewen3 小时前
我把 AI 写的并发请求控制器手写了一遍——3 个语义我当时根本讲不清
前端·javascript·面试
SomeB1oody3 小时前
【RustyML入门】6.0. 数学工具
开发语言·后端·机器学习·rust·教程
_codemonster4 小时前
Vue中的ref和reactive到底在干嘛
前端·javascript·vue.js
进制树4 小时前
【飞控开发实战·⑲】ROS2无人机开发环境搭建:Jazzy安装、工作空间与hello_drone节点实战
开发语言·安全·无人机·课程设计