gpt4 book ai didi

javascript - 应该使用哪个正则表达式将 bbcode 样式的标签替换为 HTML 标签

转载 作者:行者123 更新时间:2023-11-28 01:41:09 25 4
gpt4 key购买 nike

我想替换一些特定的字母(got from user input)替换为一些特定的 html 标签,例如 <b>,<u>,<i>,etc 。我在 javascript 中使用了一些正则表达式,但无法确定哪个使用最好。我正在使用

/\[u\](.*?)\[u\]/g // replace with <u>$1</u>
/*
* if i type [u]underline[][u] //this allows '[]' braces
*/

或者我应该使用

/\[u\]\([^\[u\]]+)\[u\]/g // this doesn't allow third braces to be underlined

我也在 php.ini 中使用相同的正则表达式。我很困惑哪种类型的正则表达式使用是安全的 xss攻击。

最佳答案

不应使用正则表达式。找到一个合适的 bbcode 解析器(例如 PHP 的 BBCode )并使用它。尝试自己使用 Regex 解析 HTML 或任何已建立的标记语言会带来痛苦、麻烦和不安全感。

bobince 写了一个epic answer关于使用正则表达式解析 HTML,这也与这里相关并且始终值得一读。

关于javascript - 应该使用哪个正则表达式将 bbcode 样式的标签替换为 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20911804/

25 4 0