javascript - 如何使用正则表达式将句子中的多个单词加粗?

标签 javascript regex

我使用正则表达式将单词周围的双下划线替换为粗体标记。但如果我在一个句子中有多于一个粗体单词,那么它就不起作用。例如:

 "this should be __bold__ and __this__ also".replace(/\__([^*]+)\__/g,"<b>$1</b>");

我明白了:

 "this should be <span>bold__ and __this</span> also"

但我想得到这个:

 "this should be <span>bold</span> and <span>this</span> also"

我的正则表达式有问题。目前,只有在句子中有一个粗体单词时,它才有效。

最佳答案

在正则表达式中,量词 +* 是“贪婪的”,这意味着它们将消耗尽可能多的与被量化的表达式匹配的字符。您可以附加问号运算符 ? 将“贪婪”操作转变为惰性操作。

这将使你的表达如下:

/\__([^*]+?)\__/g

欲了解更多信息,请查看http://www.regular-expressions.info/repeat.html#lazy

关于javascript - 如何使用正则表达式将句子中的多个单词加粗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918252/

相关文章:

javascript - 我想根据属性键值对从对象返回的项目进行排序,然后为界面中的每个项目分配排名(1,2,3...等)

javascript - ASP.NET ImageButton onclick javascript 未触发

javascript - 需要正则表达式以允许最多 3 个特殊字符

javascript - 删除字符串末尾括号内的文本

java - 随机字母/符号的正则表达式

Javascript 匹配字符串中的符号

javascript - 使用 element.innerHTML 插入服务器返回并转义的 html 是安全的

javascript - $.ui 在自动完成和 ui 插件中未定义

javascript - 使用 Ava : Why is the function already wrapped? 进行 React 单元测试

php - 正则表达式帮助 (php)