我有下面的字符串,我想替换“[”和“]”之间的字符:
text = "Lorem ipsum dolor sit amet, [Link 1|www.example1.com] sadipscing elitr, sed diam nonumy [Link 2|www.example2.com] tempor invidunt ut labore et [Link 3|www.example3.com] magna"
我们的目标是:
newText = "Lorem ipsum dolor sit amet, <a href=www.example1.com target="_blank">Link 1</a> sadipscing elitr, sed diam nonumy <a href=www.example2.com target="_blank">Link 2</a> tempor invidunt ut labore et <a href=www.example3.com target="_blank">Link 3</a> magna"
下面的代码只替换第一个链接(链接1),但链接2和3没有任何效果
const urlTextChain = text.substring(text.indexOf("[") + 1, text.indexOf("]"));
if (urlTextChain) {
const textUrl = urlTextChain.substring(0, urlTextChain.lastIndexOf("|"));
const url = urlTextChain.substring(urlTextChain.indexOf("|") + 1);
const link = "<a href=" + url + " target=" + '"_blank"' + ">" + textUrl + "</a>";
let newText = text.replace(urlTextChain, link);
newText = newText.replace('[', '');
newText = newText.replace("]", '');
return newText;
}
3条答案
按热度按时间qqrboqgw1#
MDN String.prototype.replaceMDN RegExp
可以使用
RegExp
进行替换。p1
对应于第一个括号,p2
是对应于第二个括号的值。5hcedyr02#
这是正则表达式的一个典型例子,请改为:
将决心:
zf9nrax13#
您可以使用
replaceAll
方法,它使用与replace
方法相同的语义。