我应该为[some | text]使用哪个RegExp模板?

时间:2018-04-22 08:36:32

标签: javascript

我有一个像[some|text]这样的字符串。我应该使用哪个RegExp模板? 我已经尝试/\[.|.\]/gi,但它不起作用。 我需要[https://google.com|Google]这个:<a href="https://google.com">Google</a> 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您的模式有三个问题:

  • 您只使用.匹配一个字符,而不是一系列字符
  • |具有特殊意义,因此您必须像[]一样逃避它(您实际上不必逃避])< / LI>
  • 如果要捕获|两侧的文本,则需要捕获组

添加*和转义,并将String#replace$1一起用于第一个捕获组,将$2用于第二个捕获组:

&#13;
&#13;
var str = "[https://google.com|Google]";
var rex = /\[(.*)\|(.*)\]/gi;
var result = str.replace(rex, '<a href="$1">$2</a>');

console.log(result);
&#13;
&#13;
&#13;