替换富文本编辑器中的 HTML 标记
Replace HTML tags in rich text editor
我现在正在为我的项目制作富文本编辑器,我一度被困在用<
替换<
,用>
替换>
,用<b></b>
替换[b][/b]
,用<i></i>
替换[i][/i]
。现在我不明白如何将[img src=location]
替换为<img src=location>
,[a href=url]
替换为<a href=url>
.我希望你们理解我的问题。我迫切需要这个.谢谢
以下是我的代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
#my_textarea{
width: 300px;
height: 150px;
border: thin solid #000;
color: #000;
padding: 10px;
min-height: 150px;
min-width: 300px;
max-height: 150px;
max-width: 300px;
}
#preview{
width: 300px;
height: 150px;
border: thin solid #000;
color: #000;
padding: 10px;
}
</style>
<script>
function formatText(tag) {
var myTextArea = document.getElementById('my_textarea');
var myTextAreaValue = myTextArea.value;
var selected_txt = myTextAreaValue.substring(myTextArea.selectionStart, myTextArea.selectionEnd);
var before_txt = myTextAreaValue.substring(0, myTextArea.selectionStart);
var after_txt = myTextAreaValue.substring(myTextArea.selectionEnd, myTextAreaValue.length);
myTextArea.value = before_txt + '[' + tag + ']' + selected_txt + '[/' + tag + ']' + after_txt;
}
function insertlink(){
var linkurl = prompt("Enter the URL for this link:", "http://");
var myTextArea = document.getElementById('my_textarea');
var myTextAreaValue = myTextArea.value;
var selected_txt = myTextAreaValue.substring(myTextArea.selectionStart, myTextArea.selectionEnd);
var before_txt = myTextAreaValue.substring(0, myTextArea.selectionStart);
var after_txt = myTextAreaValue.substring(myTextArea.selectionEnd, myTextAreaValue.length);
if(linkurl != null)
{
myTextArea.value = before_txt + '<' + 'a href=' + linkurl + '>' + selected_txt + '</' + 'a' + '>' + after_txt;
}
}
function insertimage(){
var imgurl = prompt('Enter image location', '');
var myTextArea = document.getElementById('my_textarea');
var myTextAreaValue = myTextArea.value;
var selected_txt = myTextAreaValue.substring(myTextArea.selectionStart, myTextArea.selectionEnd);
var before_txt = myTextAreaValue.substring(0, myTextArea.selectionStart);
var after_txt = myTextAreaValue.substring(myTextArea.selectionEnd, myTextAreaValue.length);
if(imgurl != null)
{
myTextArea.value = before_txt + '[' + 'img src=' + imgurl + ']' + selected_txt + after_txt;
}
}
function preview() {
var textbox , view ;
textbox = document.getElementById('my_textarea');
view = document.getElementById("preview");
view.innerHTML = textbox.value.replace(/'</g, '<').replace(/'>/g, '>').replace(/'[b]/g, '<b>').replace(/'['/b']/g, '</b>').replace(/'[i]/g, '<i>').replace(/'['/i']/g, '</i>')
}
</script>
</head>
<body>
<input type="button" value="Bold" onClick="formatText ('b');" />
<input type="button" value="Italic" onClick="formatText ('i');" />
<input type="button" value="Image" onClick="insertimage();" />
<input type="button" value="Link" onClick="insertlink();" /><br />
<textarea name="my_textarea" id="my_textarea" style="width:300px;"></textarea><br><br>
<div id="preview"></div><br>
<button id="btn" onClick="preview();">Preview</button>
</body>
</html>
演示 : http://jsfiddle.net/cfYWE/
在大多数情况下,您可以简单地用尖括号替换每个括号。这里有一个函数可以做到这一点:
// Convert BBCode to HTML
function bbcodeToHtml(bbcode) {
var html = bbcode;
html = html.replace(/'[/gi, '<');
html = html.replace(/']/gi, '>');
return html;
}
var bbcode = '[a href=url][img src=location][/img][/a]';
bbcodeToHtml(bbcode); // returns '<a href=url><img src=location></img></a>'
要替换您列出的示例,请使用正则表达式
var exp = /'[(.*)']/;
var text = '[img src=location]';
text.replace(exp, "<$1>") // returns <img src=location>
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- HTML标记在脚本标记中工作
- 是否可以添加这行“;“照原样”;在HTML标记中
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如果匹配项在特定的html标记中,则跳过regex匹配
- 使用 Pure JS 更改 HTML 标记名称
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- HTML标记,包含带引号的JavaScript代码中的引号
- 如何在JavaScript中创建打字机效果,这将考虑html标记规则
- 将c#视图模型转换为javascript模型时转义HTML标记
- Regex剥离具有特定属性的html标记
- 如何在不创建格式错误的HTML标记的情况下分解字符串
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 如何在angularJS中运行for循环而不使用html标记
- Riot 每个构建 HTML 标记
- 用HTML标记+ 替换关闭的HTML标记
- 存储包含html标记的文本
- Regex以转义HTML标记
- 在html标记中序列化javascript代码
- JS来显示HTML标记