Javascript用标签bbcode包装文本
Javascript wrap text with tags bbcode?
有没有用标签包装文本区域文本?Javascript/Jquery
B=粗体I=斜体U=下划线S=删除
例如:
-+-+-+-+-
B I U S
-+-+-+-+-
<textarea>
Some text here
</textarea>
当我突出显示"这里",然后点击粗体,它将是这样的smth。
-+-+-+-+-
B I U S
-+-+-+-+-
<textarea>
Some text [b]here[/b]
</textarea>
希望我能找到解决方案就这样,谢谢。
这是的解决方案
function wrapText(elementID, openTag, closeTag) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = openTag + selectedText + closeTag;
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}
使用
console.log(parseBB('[b]hello [/b][u]world[/u]'));
console.log(parseBB(document.getElementById('textareaID').value));
console.log(parseBB($('#textareaID').val()));
测试用例
$('#output-container').html(parseBB($('#textareaID').val()));
function parseBB(string){
var _string = string.replace(/'n/g, '<br>'),
parseExp = new RegExp(/^(.*)'[(b|u|i|s)']([A-Za-z0-9 ._-]+)'['/[a-z]+'](.*)$/g);
(function run(){
if(parseExp.test(_string)){
_string = _string.replace(parseExp , '$1<$2>$3</$2>$4');
run();
}
})();
return _string;
}
相关文章:
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- 如何在输入中选择的文本周围包装html标记
- 如何将所有文本包装成唯一的span标记
- 通过 jQuery Find and Replace 将文本 URL 与 标记包装在一起
- 如何将由
分隔的文本节点与它们自己的标记包装起来
- 如何使用jquery检测包装的纯文本并应用html标记
- 如何将新输入的文本包装到下面已经存在的span标记中
- 包装和打开jquery后合并文本节点
- 如何在启用designMode的iframe中包装文本,必要时使用css和javascript
- Javascript用标签bbcode包装文本
- 如何在myeclipse中包装文本
- 如何在两行上包装文本,每行上的数量相等
- 如何包装文本内的特定宽度和高度使用javascript向上滚动和向下滚动
- 如何在滑动导航面板中包装文本?
- <a>标记在由jQuery生成时未完全包装文本
- 如何在SVG中包装文本
- D3加上用圆圈包装文本
- 包装文本,使用调用函数传递数据
- javascript用标记包装文本
- 如何用HTML标签包装文本,但排除某些HTML标签内的文本