对于字符串
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"
第二种解决方案是使用匹配而不是替换,因此对于相同的字符串应用匹配这种方式:
s.match(/\[BBSHORTCODE_(.*)\[\/BBSHORTCODE_button\]/)[1];
请注意, match 返回一个数组,其中您想要的结果位于第二个位置,这就是指令后面有 [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]);
希望这可以帮助。