我有一个像[some|text]
这样的字符串。我应该使用哪个RegExp模板?
我已经尝试/\[.|.\]/gi
,但它不起作用。
我需要[https://google.com|Google]
这个:<a href="https://google.com">Google</a>
任何人都可以帮助我吗?
答案 0 :(得分:2)
您的模式有三个问题:
.
匹配一个字符,而不是一系列字符|
具有特殊意义,因此您必须像[
和]
一样逃避它(您实际上不必逃避]
)< / LI>
|
两侧的文本,则需要捕获组添加*
和转义,并将String#replace
与$1
一起用于第一个捕获组,将$2
用于第二个捕获组:
var str = "[https://google.com|Google]";
var rex = /\[(.*)\|(.*)\]/gi;
var result = str.replace(rex, '<a href="$1">$2</a>');
console.log(result);
&#13;