我基本上是在尝试创建自己的标签 - 并用正确的HTML标签替换它们。因此{B} {/B}
会变成<b> </b>
我到目前为止只有这个,在这里:http://www.nacremedia.com/text2.htm
使用[B]按钮加粗当前选择...它会因某种原因创建两个粗体标签和一个关闭。
我太近了!但我只需要一点方向来获得最终的错误 - 有人可以帮忙吗?
此外,如果有更好的方式完全这样做,那么我非常欢迎新的想法。
答案 0 :(得分:0)
您可以在字符串上使用一系列.replace()函数。例如:
var your_string = "{B}Testing{/B}";
your_string.replace("{B}", "<b>");
your_string.replace("{/B}", "</b>");
答案 1 :(得分:0)
如果你试图加粗文本“Test”那么,在replaceArray的for循环的最后,replaceString的值是&lt; b&gt; dsaf&lt;&lt; / i&gt; b&gt;
这是因为在循环的最后一步中,&lt; b&gt; Test&lt; / b&gt;中的正斜杠了。匹配正则表达式/ [/ I] / g,因为正则表达式中的括号指定了字符类。正则表达式不是在字符串中查找“[/ I]”,而是实际上正在寻找前锋或字符I.
最后,当插入到输出div时,浏览器会自动关闭第一个粗体标记并省略关闭斜体标记,最后留下一个额外的粗体标记。
转义“[/ I]”中的括号应该可以解决您的问题,或者更好的是,将其更改为“{/ I}”以避免出现问题,并且与实现粗体的方式保持一致。
有关正则表达式字符类的详细信息,请参阅:http://www.regular-expressions.info/charclass.html
最后一点,eloquent javascript(http://eloquentjavascript.net/chapter6.html)的功能章节解释了解析和生成标记的更好方法之一。