我是使用RegEX的新手,我真的可以使用一些帮助。
我正在做一些字符串替换,我目前得到输出
<div /foo>
而不是
</div>
str = "[foo][/foo]";
使用正则表达式:
str= str.replace(/\[/g, '<div ').replace(/\]/g, '>');
想要输出:
<div foo></div>
有人可以帮助我以正确的方式替换字符串吗?
非常感谢!
答案 0 :(得分:3)
您的问题内容不多,所以我发布了一些可以完成工作的内容。请注意,这假设您不关心开始标记之后的任何内容,它只保留标记的名称并将其替换为</tagname>
。
var str = "<div /foo>";
var replaced = str.replace(/<(\w+).*/, '</$1>')
// "</div>"
答案 1 :(得分:2)
这个可以满足您的需求:
\[([^\]]+)\](.*?)\[/\1\]
替换为:<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