用</div>替换<div foo =“”>的RegEX

时间:2014-03-03 14:17:47

标签: javascript jquery regex regex-negation

我是使用RegEX的新手,我真的可以使用一些帮助。

我正在做一些字符串替换,我目前得到输出

<div /foo> 

而不是

</div>

str = "[foo][/foo]";

使用正则表达式:

str= str.replace(/\[/g, '<div ').replace(/\]/g, '>');

想要输出:

<div foo></div>

有人可以帮助我以正确的方式替换字符串吗?

非常感谢!

4 个答案:

答案 0 :(得分:3)

您的问题内容不多,所以我发布了一些可以完成工作的内容。请注意,这假设您不关心开始标记之后的任何内容,它只保留标记的名称并将其替换为</tagname>

var str = "<div /foo>";
var replaced = str.replace(/<(\w+).*/, '</$1>')
// "</div>"

答案 1 :(得分:2)

这个可以满足您的需求:

\[([^\]]+)\](.*?)\[/\1\]

Regular expression visualization

替换为:<div $1>$2</div>

PS:如果使用JavaScript的正则表达式字面值,请不要忘记转义/,即:

/\[([^\]]+)\](.*?)\[\/\1\]/g

答案 2 :(得分:0)

怎么样:

str= str.replace(/\[(.+?)\]\[\/\1\]/g, '<div $1></div>');

答案 3 :(得分:0)

你也可以这样做。

var  str = "[foo][/foo]";
//replace <, > with [, ]
var signReplace = str.replace(/\[/g, '<').replace(/\]/g, '>'); 
tagReplace = signReplace.replace(/foo/g, 'div'); //replace div with foo