正则表达式- 用开放和关闭标记替换备选特殊字符

3
我有一个样本字符串,我想使用JavaScript中的正则表达式将第一个星号替换为开头的<b>标签,将第二个星号替换为闭合的</b>标签:
基本上我希望得到以下结果
*Please click CreateActivate email below.* *Please click username passwords below.* *Please click Bill Details below.*

这应该变成这样:

<b>Please click CreateActivate email below.</b> <b>Please click username passwords below.</b> <b>Please click Bill Details below.</b>`

我对正则表达式没有任何了解,因此我没有尝试自己写,但通过谷歌搜索寻找解决方案。


1
你尝试过解决这个问题吗?如果是的话,请在问题中添加你的尝试。 - Tushar
2
你将这个标记为重复,能否引导我找到一个类似于我的问题的答案?与此同时,我会尝试那些好心人提供的解决方案! - Nazir
1
你可以尝试这个答案或者我的评论 - Tushar
1
如果您正在使用Java:为了清理混乱的HTML,有一个不错的工具https://github.com/jhy/jsoup/。 - wwerner
1个回答

3

使用正则表达式在 .replace() 中执行此操作。在模式 ([^*]+) 中匹配除 * 以外的任何字符,并可以使用替换中的 $1 获取匹配的部分。

var str = "*Please click CreateActivate email below.* *Please click username passwords below.* *Please click Bill Details below.*";
var newStr = str.replace(/\*([^*]+)\*/g, "<b>$1</b>");
console.log(newStr);


2
请问一下,'$1' 是什么意思?我在许多地方都看到它出现。 非常感谢您的帮助,您的答案真是太棒了!我会将您的回答标记为正确的。 - Nazir
1
@Nazir 在替换参数中,$ 表示正则表达式匹配组。因此在这种情况下,$1 是由 ([^*]+) 匹配的部分。 - Mohammad
2
哦,好的!太棒了。 - Nazir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接