javascript 用多个 html 替换()多个 bbcode 实例
我需要使用 javascript Replace() 函数将 [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
I need to get the javascript replace() function to replace every instance of a [b] or [/b] with <b>
or </b>
. I tried this with the global tag but it doesn't work and comes out oddly:
document.write(str.replace(/[b]/g,'<b>').replace(/[/b]/g,'</b>'));
results in the output being:
[<>]<>la<>la[<>][<>]<>la<>la[<>]
I also tried changing the first part to:
document.write(str.replace(/[[b]]/g,'<b>').replace(/[[/b]]/g,'</b>'));
which kind of works, but there's odd ]s everywhere... like so:
[blabla[/[blabla[/
I know there's probably something obvious I'm missing here... But I can't find it... any help and I will love you forever XD
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
[
、]
和/
是 特殊 RegExp 字符。[a]
表示:匹配任何a
字符。[abcd]
表示:匹配一个字符,为a、b、c、d之一。[az]
表示:匹配任意字母。/
用于标记正则表达式的开始和结束。要使用文字字符,必须对它们进行转义。
请注意,可以使用反向引用来合并两个正则表达式:
[
,]
and/
are special RegExp characters.[a]
means: Match anya
character.[abcd]
means: Match one character, which is one of a, b, c, d.[a-z]
means: Match any letter./
is used to mark the beginning and end of a RegExp.To use the literal characters, they have to be escaped.
Note that both Regular expressions can be merged, using a backreference:
一次替换它们可能会更好:
您还可以更进一步,用一个正则表达式处理多个格式代码(本例中为 b、i、u 和 s):
像这样的表达式(使用
(.+?)
) 比你的更好,因为它们只处理有效的标记并忽略未封闭的[标签]。You might be much better off replacing 'em both at once:
You can also go one step further and handle multiple formatting codes (b, i, u and s in this example) with one single regular expression:
Expressions like this (with
(.+?)
) are better than yours because they only handle valid markup and ignore unclosed [tags].