1

在文本字符串中,我想查找任何出现的 [[mymarker-id]] 并将其替换为自定义 html 字符串:

'<div>id</div>'

例如:

"this is a sample text [[mymarker-123_4Efd]] for illustration purpose"

会成为

"this is a sample text <div>123_4Efd</div> for illustration purpose"

id 为 8 个字符的长字符串匹配:([a-zA-Z0-9_-]){8}

我希望我可以说我在问之前尝试了很多事情,但是我对正则表达式很不好

4

4 回答 4

2

捕获 8 个字符长Id并将Id自定义 HTML 中的 替换为捕获的文本。

var marker = "this is a sample text [[mymarker-123_4Efd]] for illustration purpose"
marker.replace(/\[\[mymarker-(.{8})\]\]/, '<div>$1</div>')

或者,如果自定义 HTML 是动态构造的:

var customHtml = '<div>id</div>';
var id = marker.match(/\[\[mymarker-(.{8})\]\]/)[1];
customHtml = customHtml.replace('id', id);

jsBin 演示

于 2013-11-05T08:52:07.180 回答
0

使用这个正则表达式:

\[\[mymarker\-([^\]]+)\]\]
于 2013-11-05T08:46:01.987 回答
0
var str   = "this is a sample text [[mymarker-123_4Efd]] for illustration purpose";
var regex = /(\[\[mymarker\-)([^\]]+)\]\]/;
str = str.replace(regex, "<div>$2</div>");
于 2013-11-05T08:52:45.343 回答
-1
    var re = /\[\[mymarker-123_4Efd\]\]/gi;
    var str = "this is a sample text [[mymarker-123_4Efd]] for illustration purpose";
    var newstr = str.replace(re, "<div>123_4Efd</div>");
    console.log(newstr);

您必须使用反斜杠转义 [ 和 ] 符号

于 2013-11-05T08:54:13.753 回答