我有一个字符串,比如hello _there_
。我想使用JavaScript将这两个下划线分别替换为<div>
和</div>
。因此,输出将类似于hello <div>there</div>
。字符串可能包含多对下划线。
我正在寻找的是一种方法,可以在每次匹配时运行函数,就像那样:
"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }
或能够引用匹配的组,这也是在ruby中可以做到的:
"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")
有什么想法或建议吗?
发布于 2009-08-05 17:51:15
"hello _there_".replace(/_(.*?)_/, function(a, b){
return '<div>' + b + '</div>';
})
哦,或者你也可以:
"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
编辑Liran H:对于包括我在内的其他六个人来说,$1
不起作用,而\1
起作用了。
发布于 2009-08-05 17:52:27
您可以使用replace
而不是gsub
。
"hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")
发布于 2019-02-02 21:05:14
用于由$
指定的替换字符串和替换模式。下面是一份简历:
文档链接:here
"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")
备注:
如果希望在替换字符串中包含$
,请使用$$
。与vscode代码片段系统相同。
https://stackoverflow.com/questions/1234712
复制相似问题