我搜索了所有但却找不到任何东西。 我有:
[BBSHORTCODE_button align=none css=none000 color=#FFFFFF]CONTENT[/BBSHORTCODE_button]
我想删除字符串的第一部分和最后部分并获取
button align=none css=none000 color=#FFFFFF]CONTENT
我试过了:
string.replace(/\[BBSHORTCODE_([^\/]*)\]/g, function(d, c) {...})
它删除了我想要的第一部分和最后一个字符:]
。因此,可以替换我的代码,以便删除最后一部分:[/BBSHORTCODE_button]
答案 0 :(得分:0)
表示字符串
var s = "[BBSHORTCODE_button align=none css=none000 color=#FFFFFF]CONTENT[/BBSHORTCODE_button]";
你可以在字符串的每个边框上应用替换两次,你得到你想要的东西:
s = s.replace(/\[BBSHORTCODE_/g, '').replace('\[/BBSHORTCODE_button\]', '');
输出字符串是:
"button align=none css=none000 color=#FFFFFF]CONTENT"
第二个解决方案是使用match而不是replace,因此对于相同的字符串,以这种方式匹配:
s.match(/\[BBSHORTCODE_(.*)\[\/BBSHORTCODE_button\]/)[1];
请注意,匹配返回一个数组,其中您的所需结果位于第二个位置,这就是指令后面有[1]的原因。
更一般地说,如果你有另一个字符串,如:
l = "[BBSHORTCODE_something align=none css=none000 color=#FFFFFF]CONTENT[/BBSHORTCODE_something]";
以下列方式使用匹配:
l.match(/\[BBSHORTCODE_(.*)\[\/BBSHORTCODE_(.*)\]/)[1];
将返回所需的结果,据我所知:
something align=none css=none000 color=#FFFFFF]CONTENT
这是一个完整的测试场景:
var l = "[BBSHORTCODE_something align=none css=none000 color=#FFFFFF]CONTENT[/BBSHORTCODE_something]";
console.log(l.match(/\[BBSHORTCODE_(.*)\[\/BBSHORTCODE_(.*)\]/)[1]);
希望这会有所帮助。