V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
youla
V2EX  ›  程序员

JavaScript 只用正则表达式,这种替换能实现吗?

  •  
  •   youla · 2020-12-31 09:30:02 +08:00 · 1598 次点击
    这是一个创建于 1453 天前的主题,其中的信息可能已经有所发展或是发生改变。
    var str = "hello,V2ex!hi!v2Ex..";
    
    // 经过一段高深莫测的正则表达式处理之后
    
    str = "hello,www.V2ex.com!hi!www.v2Ex.com..";
    
    /**
    * replace 字符串也能做,不过这只是举个例子,有很多单词,不区分大小写,
    *
    * 要替换成 www.(不改变原来的单词).com ,我知道域名是不区分大小写的
    *
    * 在纠结到底能不能实现....
    */
    
    
    // https://regex101.com/ 一直在上面练习
    

    最近摸鱼太多,整个人挺呆的。

    noe132
        1
    noe132  
       2020-12-31 09:37:22 +08:00   ❤️ 2
    const wordlist = ['V2ex', 'v2Ex']
    const regexp = new RegExp(wordlist.join('|'), 'g')
    const str= "hello,V2ex!hi!v2Ex..";
    const result = str.replace(regexp, (m) => `www.${m}.com`)
    console.log(result)
    randyo
        2
    randyo  
       2020-12-31 09:39:59 +08:00 via Android   ❤️ 1
    str.replace(/([Vv]2[eE][Xx])/g, 'www.$1.com')
    abelmakihara
        3
    abelmakihara  
       2020-12-31 09:42:01 +08:00   ❤️ 2
    "hello,V2ex!hi!v2Ex..".replace(/(v2ex)/gi,'www.$1.com')
    Takamine
        4
    Takamine  
       2020-12-31 09:45:25 +08:00 via Android
    如果是固定 hello,\w+!hi!\w+的格式的话问题不大。
    youla
        5
    youla  
    OP
       2020-12-31 09:45:53 +08:00
    我憨了,原来还能这么写。
    huage2580
        6
    huage2580  
       2020-12-31 10:48:18 +08:00
    看起来,确实呆了啊,少摸鱼 >_<
    toan
        7
    toan  
       2020-12-31 10:50:38 +08:00 via iPhone
    少摸鱼,能实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3483 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:45 · PVG 18:45 · LAX 02:45 · JFK 05:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.