我有一个由LinkedIn API返回的字符串,其中包含许多hashtag.它们的格式如下:

{hashtag|\#|somehashtag}

我try 使用一个String.replaceAll的正则表达式,将所有出现的这些主题标签替换为标准的主题标签表示法,如下所示:

#somehashtag

我认为这个正则表达式将标识字符串中的标签,但如何标识将其替换为第二个参数的内容呢?

mystring.replaceAll(/(?<={hashtag\|\\\#\|)(.*)(?=})/g, /* whatgoeshere? */ );

例如,如果我有:

var mystring = "This is my social post, and it has a hashtag in it like this {hashtag|\#|somehashtag} and I want it replaced";

我希望能够运行以下内容:

mystring = mystring.replaceAll(regex, replacement)

因此,这将在mystring中返回:

"This is my social post, and it has a hashtag in it like this #somehashtag and I want it replaced"

推荐答案

您可以使用捕获组100来捕获实际的标签文本.并且在第二个参数replace中,使用$1#一起使用捕获的组.

const regex = /{hashtag\|\\\#\|(.*?)}/g;
/* If it is a word character and that you're sure. 
 You can also use \w(matches [0-9a-zA-Z_]).
 so /{hashtag\|\\\#\|(\w*?)}/g
 https://regex101.com/r/zDTH6B/1 */
const mystring = "This is a {hashtag|\\#|samplehashtag} and another {hashtag|\\#|examplehashtag} in the text.";
const replaced = mystring.replace(regex, '#$1');

console.log(replaced);

Javascript相关问答推荐

Vega中的模运算符

提交表格后保留Web表格中的收件箱值?

Cookie中未保存会话数据

使用下表中所示的值初始化一个二维数组

如何解决chrome—extension代码中的错误,它会实时覆盖google—meet的面部图像?'

Angular:动画不启动

无法检测卡片重叠状态的问题

如何在文本字段中输入变量?

覆盖加载器页面避免对页面上的元素进行操作

在不删除代码的情况下禁用Java弹出功能WordPress

如何限制显示在分页中的可见页面的数量

AddEventListner,按键事件不工作

删除元素属性或样式属性的首选方法

使每个<;li>;元素的 colored颜色 与随机生成的 colored颜色 列表不同(不重复

需要RTK-在ReactJS中查询多个组件的Mutations 数据

在对象的嵌套数组中添加两个属性

使用VITE开发服务器处理错误

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

带有JS模块模式的Rails的Importmap错误:";Net::ERR_ABORTED 404(未找到)&Quot;

调试jQuery代码以获取所有行的总和(票证类型)