电子邮件模板的HTML到文本转换器(javascript)

电子邮件模板的HTML到文本转换器(javascript),javascript,html,text,process,Javascript,Html,Text,Process,我想把javascript转换成HTML文本。所有这些我都做得很好,但我不能处理链接。我需要的注册表表达式,这是在文本版本链接为 Html版本: <a href="http://link.com">Link text</a> 我的代码 $('body').on('click','[data-action="convertTemplateToText"]', function() { var html = $("#clientHTML").val();

我想把javascript转换成HTML文本。所有这些我都做得很好,但我不能处理链接。我需要的注册表表达式,这是在文本版本链接为

Html版本:

<a href="http://link.com">Link text</a>
我的代码

$('body').on('click','[data-action="convertTemplateToText"]', function() {
    var html = $("#clientHTML").val();

    if (html) {
        html = html.replace(/<!doctype.*>/i,"");
        html = html.replace(/<head>[\w\W]*?<\/head>/i,"");
        html = html.replace(/<style.*>[\w\W]*?<\/style>/gi,"");
        html = html.replace(/<script.*>[\w\W]*?<\/script>/gi,"");
        html = html.replace(/\n|\r/g," ");
        html = html.replace(/\<\/p\>/gi,"\n");
        html = html.replace(/\<\/li\>/gi," ");
        html = html.replace(/\<br\s*?\/?\>/gi,"\n");
        html = strip_tags(html,'<a>');
        html = html_entity_decode(html,'HTML_ENTITIES');
        html = html.replace(/([ \t])+/g," ");
        html = html.replace(/\n /g,"\n");

        if (html.charAt(0) == ' ') {
            html = html.substr(1);
        }
    } else {
        html = '';
    }

    $("#clientText").val(html);
    $('#templateTextContainer').slideDown(500);

    return false;
});
$('body')。在('click','data action=“convertTemplateToText”]”上,函数(){
var html=$(“#clientHTML”).val();
如果(html){
html=html.replace(//i,“”);
html=html。替换(/[\w\w]*?/i,“”);
html=html.replace(/[\w\w]*?/gi,”);
html=html.replace(/[\w\w]*?/gi,”);
html=html。替换(/\n |\r/g,“”);
html=html.replace(/\/gi,“\n”);
html=html.replace(/\/gi,“”);
html=html.replace(/\/gi,“\n”);
html=带标签(html,);
html=html_实体_解码(html,'html_实体');
html=html.replace(/([\t])+/g,“”;
html=html.replace(/\n/g,“\n”);
如果(html.charAt(0)=''){
html=html.substr(1);
}
}否则{
html='';
}
$(“#clientText”).val(html);
$(#templateTextContainer')。向下滑动(500);
返回false;
});

请帮帮我

我不知道您是否在使用jQuery,但它非常简单:

$('a').each(function() {
    var $text = $(this).html();
    var $link = $(this).attr('href');
    $(this).after($text+" ("+$link+")");
    $(this).remove();
});
EDIT3(已更正注释中的错误):

好的,我已经实现了您所需要的:

/<\s*a.*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/ig
下面是一个工作示例:


我还添加了一个检查,以包括格式错误的标记,例如

,我不知道您是否在使用jQuery,但使用它非常简单:

$('a').each(function() {
    var $text = $(this).html();
    var $link = $(this).attr('href');
    $(this).after($text+" ("+$link+")");
    $(this).remove();
});
    <!DOCTYPE html>
     <body>
      <div id='tempDiv'></div>
        <script>
          var html
          html='<h3><a href="//stackoverflow.com">current community</a></h3>'
          alert(toText(html))
EDIT3(已更正注释中的错误):

好的,我已经实现了您所需要的:

/<\s*a.*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/ig
下面是一个工作示例:


我还添加了一个检查,以包括格式错误的标记,例如

,我不知道您是否在使用jQuery,但使用它非常简单:

$('a').each(function() {
    var $text = $(this).html();
    var $link = $(this).attr('href');
    $(this).after($text+" ("+$link+")");
    $(this).remove();
});
    <!DOCTYPE html>
     <body>
      <div id='tempDiv'></div>
        <script>
          var html
          html='<h3><a href="//stackoverflow.com">current community</a></h3>'
          alert(toText(html))
EDIT3(已更正注释中的错误):

好的,我已经实现了您所需要的:

/<\s*a.*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/ig
下面是一个工作示例:


我还添加了一个检查,以包括格式错误的标记,例如

,我不知道您是否在使用jQuery,但使用它非常简单:

$('a').each(function() {
    var $text = $(this).html();
    var $link = $(this).attr('href');
    $(this).after($text+" ("+$link+")");
    $(this).remove();
});
    <!DOCTYPE html>
     <body>
      <div id='tempDiv'></div>
        <script>
          var html
          html='<h3><a href="//stackoverflow.com">current community</a></h3>'
          alert(toText(html))
EDIT3(已更正注释中的错误):

好的,我已经实现了您所需要的:

/<\s*a.*?href\s*=\s*(?:"|')(.*?)(?:"|')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/ig
下面是一个工作示例:

我还添加了一个检查,以包括格式错误的标记,例如


    <!DOCTYPE html>
     <body>
      <div id='tempDiv'></div>
        <script>
          var html
          html='<h3><a href="//stackoverflow.com">current community</a></h3>'
          alert(toText(html))
变量html html=“” 警报(文本(html))
以下函数将传递给它的任何html内容转换为文本

            function toText(content) {
             document.getElementById('tempDiv').innerHTML = content
             return document.getElementById('tempDiv').textContent
            }
        </script>

     </body>
    </html>
function-toText(内容){
document.getElementById('tempDiv')。innerHTML=content
返回文档.getElementById('tempDiv').textContent
}

变量html
html=“”
警报(文本(html))
以下函数将传递给它的任何html内容转换为文本

            function toText(content) {
             document.getElementById('tempDiv').innerHTML = content
             return document.getElementById('tempDiv').textContent
            }
        </script>

     </body>
    </html>
function-toText(内容){
document.getElementById('tempDiv')。innerHTML=content
返回文档.getElementById('tempDiv').textContent
}

变量html
html=“”
警报(文本(html))
以下函数将传递给它的任何html内容转换为文本

            function toText(content) {
             document.getElementById('tempDiv').innerHTML = content
             return document.getElementById('tempDiv').textContent
            }
        </script>

     </body>
    </html>
function-toText(内容){
document.getElementById('tempDiv')。innerHTML=content
返回文档.getElementById('tempDiv').textContent
}

变量html
html=“”
警报(文本(html))
以下函数将传递给它的任何html内容转换为文本

            function toText(content) {
             document.getElementById('tempDiv').innerHTML = content
             return document.getElementById('tempDiv').textContent
            }
        </script>

     </body>
    </html>
function-toText(内容){
document.getElementById('tempDiv')。innerHTML=content
返回文档.getElementById('tempDiv').textContent
}

您可以使用它,这是一个开源库,可以解决您遇到的同样问题。它不依赖于任何其他lib,您也可以在浏览器和node.js中使用它。

您可以使用它,这是一个开源lib,可以解决与此相同的问题。它不依赖于任何其他lib,您也可以在浏览器和node.js中使用它。

您可以使用它,这是一个开源lib,可以解决与此相同的问题。它不依赖于任何其他lib,您也可以在浏览器和node.js中使用它。

您可以使用它,这是一个开源lib,可以解决与此相同的问题。它不依赖于任何其他LIB,您也可以在浏览器和node.js中使用它。

no…我需要在reg exp中使用它。我使用textarea获得了值,在使用文本后,我应该替换所有链接,但感谢您的回答-请检查此链接。如果链接在一行中,那么reg-exp是不正确的:(你在这里吗?你能帮我吗?我刚刚在我的答案中编辑了链接现在试试:)不…我需要在reg-exp中。我得到了文本区域的值,在处理完文本后,我应该替换所有链接,但是谢谢你的回答-请检查此链接。如果链接在一行中,那么reg-exp是不正确的:(你在这里吗?你能帮我吗?我刚刚在我的答案中编辑了链接现在试试:)不…我需要在reg-exp中。我得到了文本区域的值,在处理完文本后,我应该替换所有链接,但是谢谢你的回答-请检查此链接。如果链接在一行中,那么reg-exp是不正确的:(你在这里吗?你能帮我吗?我刚刚在我的答案中编辑了链接现在试试:)不…我需要在reg-exp中。我得到了文本区域的值,在处理完文本后,我应该替换所有链接,但是谢谢你的回答-请检查此链接。如果链接在一行中