我有一个字符串,例如 hello _there_
。我想使用 JavaScript 分别用 <div>
和 </div>
替换两个下划线。输出将(因此)看起来像 hello <div>there</div>
。该字符串可能包含多对下划线。
我正在寻找的是一种在每场比赛上运行一个函数的方法,就像 Ruby 那样:
"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }
或者能够引用匹配的组,同样可以在 ruby 中完成:
"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")
有什么想法或建议吗?
"hello _there_".replace(/_(.*?)_/, function(a, b){
return '<div>' + b + '</div>';
})
哦,或者你也可以:
"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
您可以使用 replace
代替 gsub
。
"hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")
对于 $
指定的替换字符串和替换模式。这里有一份简历:
https://i.stack.imgur.com/ynEua.png
文档链接:here
"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")
笔记:
如果您想在替换字符串中有一个 $
,请使用 $$
。与 vscode 代码段系统相同。
$1
而不是\1
?有人会提供文档链接吗?replacementValue
可以是一个函数,并根据捕获组传递不同的参数?惊人!"hello _there_".replace(/_(.*?)_/, /<div>\1<\/div>/)
。