Javascript复制到剪贴板,包括HTML格式的文本

时间:2017-09-23 16:47:26

标签: javascript button copy

我对js比较新,所以想要一些帮助,

我有一个在php中生成的表单。我希望用户能够单击按钮并将航班结果复制到剪贴板,

我有以下javascript函数:

<script>

function copyToClipboard(element) {
var $temp = $("<textarea>");
var brRegex = /<br\s*[\/]?>/gi;
$("body").append($temp);
$temp.val($(element).html().replace(brRegex, "\r\n")).select();
document.execCommand("copy");
$temp.remove();
}

</script>

但是,当您粘贴结果时,我会看到以下格式标记可见:

<b>Mon 09 Oct - DY 7015 </b> 
Depart: London Gatwick Airport,  (LGW) at 17:05
Arrive: John F Kennedy Airport, New York (JFK) at 20:05 

我希望结果输入为

10月9日星期一 - DY 7015
出发:伦敦盖特威克机场(LGW)于17:05左右 抵达:纽约约翰肯尼迪机场(肯尼迪机场)20:05

或者如果不容易这样做,那么至少在没有格式化但没有标签的情况下显示

10月9日星期一 - DY 7015
出发:伦敦盖特威克机场(LGW)于17:05左右 抵达:纽约约翰肯尼迪机场(肯尼迪机场)20:05

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此正则表达式删除HTML标记:/<\/?[a-zA-Z]+\/?>/g

所以,这应该有效:

$(element).html().replace(brRegex, "\r\n").replace(/<\/?[a-zA-Z]+\/?>/g, '')

希望这有帮助!