【问题标题】:How can I replace characters with html tag? (enriching text)如何用 html 标签替换字符? (丰富的文字)
【发布时间】:2020-01-07 10:45:10
【问题描述】:

Text = "我有这个文本 [b] 并且希望这部分是粗体的 [/b]。"

如何将 [b] 和 [/b] 替换为 strong html 标记

所以输出是=>我有这个文本并希望这部分是粗体

我尝试像这样使用 lodash 替换,但 eslint 抱怨结束标签:

let startTag = _.replace(text, '[b]', <strong>);
let endTag= _.replace(startTag, '[/b]', </strong>);

【问题讨论】:

  • 你尝试了什么?
  • 向我们展示一些您迄今为止尝试过的代码。
  • 在'and'之后你要加粗吗?
  • 你能添加你想改变的整个字符串吗?
  • 用引号 '&lt;strong&gt;' 包裹 &lt;strong&gt;(结束标签相同)

标签: javascript html user-interface replace lodash


【解决方案1】:

您可以尝试用引号 '&lt;strong&gt;' 包装 &lt;strong&gt;(结束标记也是如此)。

let text = 'foo [b]bar[/b]';
let startTag = _.replace(text, '[b]', '<strong>');
let endTag = _.replace(startTag, '[/b]', '</strong>');
document.write(endTag);
&lt;script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"&gt;&lt;/script&gt;

这个标记看起来像BBCode。您可能想要使用现有的 bbcode 解析器而不是构建一个。 (检查您最喜欢的浏览器引擎以找到解决方案,例如 Extendible-BBCode-Parserjs-bbcode-parsernode-bbcode,甚至在 Stack Overflow 上 Convert BBcode to HTML using JavaScript/jQuery)。

【讨论】:

  • 谢谢,但这会打印带有标签的文本:我有这个文本 并希望这部分是粗体。也许是因为我正在使用 jsx
  • @Eskoby 将标签 jsx 添加到您的问题中。直到现在你才提到它。对了,你打算支持bbcode还是只支持[b]标签?
【解决方案2】:

java-script 中最简单的解决方案如下所示:

var str = 'I have this text [b] and want this part to be bold [/b].';
str = str.replace(/\[b\](.*?)\[\/b\]/ig, '<strong>$1</strong>');
console.log(str);

【讨论】:

  • 不适合我...eslint 抱怨多余的字符转义。
  • 忽略多余的字符转义,它将打印文本而不解释 标签
  • function main(str) { str = str.replace(/[b](.*?)[\/b]/ig, '$1');返回字符串; } var str = '我有这个文本 [b] 并希望这部分是粗体 [/b]。';主要(str);我检查了 JSHint.com,它没有显示错误或警告:- 此文件中只有一个函数。它需要一个论点。该函数包含 2 个语句。此函数的圈复杂度数为 1。
【解决方案3】:

如果您不想使用 loadash,请执行以下操作。

var text = "I have this text [b] and want this part to be bold [/b]."
var openedTag = text.replace("[b]", "<strong>");
var closedTag = openedTag.replace("[/b]", "</strong>");
document.write(closedTag)

【讨论】:

  • 和我上面评论的一样的问题... 标签没有被解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
相关资源
最近更新 更多