正则表达式用链接替换多个匹配模式

时间:2014-05-22 03:37:03

标签: javascript regex

我的文字字段包含一些或多次出现的某些代码,例如“XX00123”或“XX00456”,例如,

The XX00123 is a sibling of XX00456 and parent of XX00789

我想使用正则表达式来替换每个出现的代码事物以及它的链接。那么上面例子的结果就是,

The <A HREF='http://server.com/XX00123'>XX00123</A> is a sibling of <A HREF='http://server.com/XX00456'>XX00456</A> and parent of <A HREF='http://server.com/XX00789'>XX00789</A>

我想我可以用

来做
  1. 将搜索结果放入数组
  2. 如果数组不为空,则为数组中的每个元素构造链接的文本字符串
  3. 执行循环以再次查找每个匹配项并将其替换为链接
  4. 但有没有办法在JavaScript和/或JQuery的一行中使用这个正则表达式?

3 个答案:

答案 0 :(得分:3)

您可以在此处使用以下内容。

var result = str.replace(/\b(XX\d+)\b/gi, "<A HREF='http://server.com/$1'>$1</A>");

Working Demo

答案 1 :(得分:1)

您可以使用以下内容:

var re = /([X0-9]+)/gi; 
var result = str.replace(re, "<A HREF='http://server.com/$1'>$1</A>");

<强> REGEX101

regex将匹配一个或多个x后跟数字,直到空格或非数字值。

答案 2 :(得分:0)

使用以下代码

var result = str.replace(/(XX(\d{5}))/ig, "<A HREF='server.com/$2'>$1</A>");

结果将是,

The <A HREF='http://server.com/00123'>XX00123</A> is a sibling of <A HREF='http://server.com/00456'>XX00456</A> and parent of <A HREF='http://server.com/00789'>XX00789</A>

$ 1代表“(XX(\ d {5}))” - 外侧括号对,$ 2代表“(\ d {5})” - 内部括号对。