字符串替换为另一个字符串jquery / javascript

时间:2015-11-19 16:09:32

标签: javascript jquery string replace

我有一个函数,它获取在iframe中生成的html并替换为自定义标记。例如,<b></b>标记被替换为[b][/b]。同样当我按Tab键时,会生成<span class="Apple-tab-span" style="white-space:pre"></span>,如何用[tab][/tab]自定义标签替换它?。请找到替换粗体标签的脚本,我尝试更换整个span标签,但它没有工作

脚本:

function htmltoBBcode() {

var html = $("#textEditor").contents().find("body").html();
  html = html.replace(/\</gi, '[');
  html = html.replace(/\>/gi, ']');

  $("#custom-tag").text(html);


}

任何帮助非常感谢。 Jsfiddle:

3 个答案:

答案 0 :(得分:2)

你可以这样做:

function htmltoBBcode() {
    var html = $("#textEditor").contents().find("body").html();
    html = html.replace(/\<span.*?\>/gi, '[tab]');
    html = html.replace(/\<\/span\>/gi, '[/tab]');
    html = html.replace(/\</gi, '[');
    html = html.replace(/\>/gi, ']');

    $("#custom-tag").text(html);
}

fiddle

答案 1 :(得分:1)

非常简单!

$('p').click(function(){
  var t = $(this).prop('outerHTML').replace(/</g, '[').replace(/>/g, ']');
$('#custom-tag').text(t);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Click me!</p>
<div id="custom-tag"></div>

答案 2 :(得分:0)

body标签中检索文本会将其编码为html,我认为您可以将其保存在临时文本区域中的任何位置进行解码,而不是在输出中替换,如下所示:

function decodeEntities(encodedString) {
    var textArea = document.createElement('textarea');
    textArea.innerHTML = encodedString;
    return textArea.value;
}

要替换span代码,请将regex替换为:

html.replace(/<span>(.+)<\/span>/, '[tab]$1[/tab]');

查看更新的fiddle

希望它会有所帮助! :)