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"

相关推荐
本末倒置18316 分钟前
Bun 内置模块全解析:告别第三方依赖,提升开发效率
前端·javascript·node.js
进击的尘埃18 分钟前
中介者模式:把面板之间的蜘蛛网拆干净
javascript
Hilaku1 小时前
OpenClaw 很爆火,但没人敢聊它的权限安全🤷‍♂️
前端·javascript·程序员
兆子龙3 小时前
React Native 完全入门:从原理到实战
前端·javascript
SuperEugene3 小时前
Vite 实战教程:alias/env/proxy 配置 + 打包优化避坑|Vue 工程化必备
前端·javascript·vue.js
兆子龙3 小时前
一文彻底搞懂 OpenClaw 的架构设计与运行原理(万字长文)
javascript
boooooooom3 小时前
别再用错 ref/reactive!90%程序员踩过的响应式坑,一文根治
javascript·vue.js·面试
德育处主任3 小时前
『NAS』一句话生成网页,在NAS部署UPage
前端·javascript·aigc
张元清3 小时前
Astro 6.0:被 Cloudflare 收购两个月后,这个"静态框架"要重新定义全栈了
前端·javascript·面试
青青家的小灰灰3 小时前
深入理解 async/await:现代异步编程的终极解决方案
前端·javascript·面试