jquery textarea自定义标记替换

jquery textarea自定义标记替换,jquery,regex,textarea,replace,Jquery,Regex,Textarea,Replace,我基本上是在尝试创建自己的标记,并用正确的HTML标记替换它们。所以{B}{/B}会变成 到目前为止,我只做了以下几点: 使用[B]按钮以粗体填充当前选择。。。由于某种原因,它会创建两个粗体标记和一个结束标记 我好近啊!但我只需要一点方向,以获得最终的错误了-有人可以请帮忙吗 此外,如果有更好的方法来实现这一点,那么我非常欢迎有新的想法。您可以在字符串上使用一系列.replace()函数。例如: var your_string = "{B}Testing{/B}"; your_string.re

我基本上是在尝试创建自己的标记,并用正确的HTML标记替换它们。所以
{B}{/B}
会变成

到目前为止,我只做了以下几点:

使用[B]按钮以粗体填充当前选择。。。由于某种原因,它会创建两个粗体标记和一个结束标记

我好近啊!但我只需要一点方向,以获得最终的错误了-有人可以请帮忙吗


此外,如果有更好的方法来实现这一点,那么我非常欢迎有新的想法。

您可以在字符串上使用一系列.replace()函数。例如:

var your_string = "{B}Testing{/B}";
your_string.replace("{B}", "<b>");
your_string.replace("{/B}", "</b>");
var your_string=“{B}测试{/B}”;
替换(“{B}”,即“”);
替换(“{/B}”和“”);

如果尝试加粗文本“Test”,则在replaceArray replaceString中for循环的最末端,replaceString的值是dsaf

这是因为在循环的最后一步,测试中的正斜杠与正则表达式/[/I]/g匹配,因为正则表达式中的括号指定了字符类。正则表达式实际上不是在字符串中查找“[/I]”,而是查找前斜杠或字符I

最后,当被插入到output div中时,浏览器自动关闭第一个粗体标记并省略结束斜体标记,在末尾留下一个额外的粗体标记

转义“[/I]”中的括号应该可以解决您的问题,或者更好的是,将其更改为“{/I}”,这样既可以避免问题,又可以与bold的实现方式保持一致

有关正则表达式字符类的详细信息,请参阅:


最后一件事,Elount javascript()的功能章节很好地解释了解析和生成标记的一种更好的方法。

看起来您正在尝试创建自己版本的。为什么?你有什么特别担心的bug吗?只是创建了额外的
?如果包含您正在使用的jQuery,可能会有所帮助。我知道它会在某个地方的链接页面上,但在这个问题上它更有用;为什么在第一个参数中要连接“文本”?@sdleihssirhc:是的,这只是一个恼人的额外参数,真的:\@Matt Ball-对不起,但这与我的问题无关。