我需要使用 javascript Replace() 函数将 [b] 或 [/b] 的每个实例替换为 <b>
或</b>
。我用全局标签尝试了这个,但它不起作用并且结果很奇怪:
document.write(str.replace(/[b]/g,'<b>').replace(/[/b]/g,'</b>'));
输出结果为:
[<>]<>la<>la[<>][<>]<>la<>la[<>]
我还尝试将第一部分更改为:
document.write(str.replace(/[[b]]/g,'<b>').replace(/[[/b]]/g,'</b>'));
哪种有效,但到处都有奇怪的]...就像这样:
[blabla[/[blabla[/
我知道我可能缺少一些明显的东西...但我找不到它...任何帮助,我会永远爱你 XD
最佳答案
[
、]
和 /
为 special RegExp characters .
[a]
表示:匹配任何a
字符。[abcd]
表示:匹配一个字符,为a、b、c、d之一。[a-z]
表示:匹配任意字母。/
用于标记正则表达式的开始和结束。
要使用文字字符,必须对它们进行转义。
str.replace(/\[b\]/g,'<b>').replace(/\[\/b\]/g,'</b>')
请注意,可以使用反向引用来合并两个正则表达式:
str.replace(/\[(\/?)b\]/g,'<$1b>')
// Replaces [b] with <b>, [/b] with </b>
关于javascript 用多个 html 替换()多个 bbcode 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9267807/