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

标签 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-_]/ 
);

怎么做?

最佳答案

假设您始终具有由空格分隔的相同模式,则不需要太多正则表达式,只需按空格分割并替换 @:

var someString = "@earth @moon";

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

console.log(str)

关于javascript - 用个人资料链接 javascript 替换用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46923199/

相关文章:

regex - 如何在 bash 脚本中匹配正则表达式中的数字

java - 正则表达式 "reluctant"量词行为不当

javascript - 检测所有传入的 HTTP 文件 Google Chrome 扩展

javascript - Angular.js中如何区分null和 '0'?

javascript - 无法使用 NextJS 9 的 API 路由设置 cookie

javascript - 缩小 JS 时的特殊字符问题

python - 在 Python 中更正用于 re.sub 替换的正则表达式语法

javascript - 简单的 JavaScript 正则表达式

javascript - Google App Scripts 正则表达式 body.findText(searchPattern) 如果换行则返回 null

Php 和 python 正则表达式的区别?