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

2020-12-31 09:30:02 +08:00
 youla
var str = "hello,V2ex!hi!v2Ex..";

// 经过一段高深莫测的正则表达式处理之后

str = "hello,www.V2ex.com!hi!www.v2Ex.com..";

/**
* replace 字符串也能做,不过这只是举个例子,有很多单词,不区分大小写,
*
* 要替换成 www.(不改变原来的单词).com ,我知道域名是不区分大小写的
*
* 在纠结到底能不能实现....
*/


// https://regex101.com/ 一直在上面练习

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

1489 次点击
所在节点    程序员
7 条回复
noe132
2020-12-31 09:37:22 +08:00
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
2020-12-31 09:39:59 +08:00
str.replace(/([Vv]2[eE][Xx])/g, 'www.$1.com')
abelmakihara
2020-12-31 09:42:01 +08:00
"hello,V2ex!hi!v2Ex..".replace(/(v2ex)/gi,'www.$1.com')
Takamine
2020-12-31 09:45:25 +08:00
如果是固定 hello,\w+!hi!\w+的格式的话问题不大。
youla
2020-12-31 09:45:53 +08:00
我憨了,原来还能这么写。
huage2580
2020-12-31 10:48:18 +08:00
看起来,确实呆了啊,少摸鱼 >_<
toan
2020-12-31 10:50:38 +08:00
少摸鱼,能实现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740491

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX