• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

正则替换JS,正则表达式

武飞扬头像
修炼室
帮助1

问题描述

表示数字_牛客题霸_牛客网 (nowcoder.com)
题目要求将所有的数字替换成*数字*

原本这道题我准备就常规使用c 去写的,但是写的过程中突然意识到
所有数字替换,不就是找到所有数字后替换吗?那不就可以使用正则表达式

带着这个想法,我去寻找对应的正则表达式

解决代码

var value = readline();

console.log(value.replace(/(\d )/g, (number) => {
    return `*${number}*`;
} ))

没错,就两句话……提交答案成功的那一刻我也有一点点震惊……
学新通

思路历程

其实开始我拿到这个题目的时候,我当时已经知道了通过正则可以替换了,但是就是差那么一个点,让我能解决这道题
如何不只是替换,而是加上字符后替换
于是发现可以使用函数去替换

1.获取到所有数字

首先第一步就是通过正则表达式获取到所有的数字,/(\d )/g

  • (\d ):匹配一个或多个数字
  • /g:全局匹配,与replaceAll类似

其实我知道如何去替换数字/[0-9]/g,也同样可以匹配到所有的数字,但是却不是我们想要的结果。
通过/[0-9]/g去寻找数字,只能找到一个数字,因为只有一个数字是满足0-9这个条件的
而通过(\d )则可以匹配到连续的多个数字

2.替换赋值

找到所有数字之后,第二步就是如何去将数字替换成*数字*了。
直接通过函数去处理

(number) => {
    return `*${number}*`;
}

因为第一步,我们已经找出了所有的连续的数字,那么我们就可以将这些找到的数字接起来,处理之后,再返回出去

  • number:所有的数字
  • *数字*形式返回

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgejfaa
系列文章
更多 icon
同类精品
更多 icon
继续加载