V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
youla
V2EX  ›  程序员

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

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

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

    noe132
        1
    noe132   67 天前   ❤️ 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   67 天前 via Android   ❤️ 1
    str.replace(/([Vv]2[eE][Xx])/g, 'www.$1.com')
    abelmakihara
        3
    abelmakihara   67 天前   ❤️ 2
    "hello,V2ex!hi!v2Ex..".replace(/(v2ex)/gi,'www.$1.com')
    Takamine
        4
    Takamine   67 天前 via Android
    如果是固定 hello,\w+!hi!\w+的格式的话问题不大。
    youla
        5
    youla   67 天前
    我憨了,原来还能这么写。
    huage2580
        6
    huage2580   67 天前
    看起来,确实呆了啊,少摸鱼 >_<
    toan
        7
    toan   67 天前 via iPhone
    少摸鱼,能实现
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   5157 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:31 · PVG 11:31 · LAX 19:31 · JFK 22:31
    ♥ Do have faith in what you're doing.