用个人资料链接javascript替换用户名

时间:2017-10-25 02:54:53

标签: javascript regex

我有这个字符串,其中有很多像这样的用户名 -

var someString = "@earth @moon";

我希望字符串是这样的 -

"[@earth](https://www.somewebsite.com/earth) [@moon](https://www.somewebsite.com/moon)"

我曾想过使用正则表达式,但我对正则表达式并不是很好

console.log(myStr.replace(/[a-z0-9A-Z-_]/, 
  "[" + /[a-z0-9A-Z-_]/ +"](https://www.website.com/" + /[a-z0-9A-Z-_]/ 
);

怎么做?

1 个答案:

答案 0 :(得分:2)

假设你总是用空格分隔相同的模式,你不需要太多的正则表达式,只需要在空格上拆分并替换@

var someString = "@earth @moon";

var str = someString.split(/\s+/).map(item =>
  `[${item}](https://www.somewebsite.com/${item.replace('@', '')})`)
  .join(" ")

console.log(str)