粘贴前删除某些文本



我有一个粘贴事件,我得到某些纯文本,所以我想从复制的文本中删除一个文本并粘贴它。

文本复制到Clipboard

<p style="font:10pt Times New Roman, Times;" pid="123">
This Amendment contains only the Cover Page, this Explanatory Note.
</p>

所以我想删除的是pid="123",我怎么可能能够做到这一点?

myTextArea.addEventListener('paste', (e) => {
let html = e.clipboardData.getData('text/plain');

console.log('i pasted', html);
});

您可以使用regex模式和replace方法来获得正确的字符串。下面是代码:

myTextArea.addEventListener('paste', (e) => {
let html = e.clipboardData.getData('text/plain');
let transformed_html = html.replace(/pid="[0-9]*"/, "");
console.log('i pasted', transformed_html);

const selection = window.getSelection();
if (!selection.rangeCount) return false;
selection.deleteFromDocument();
selection.getRangeAt(0).insertNode(document.createTextNode(transformed_html));
event.preventDefault();
});

您需要先创建一个元素,以便更改属性。

否则,您将不得不使用循环或正则表达式进行字符串操作。

let htmlAsText = `<p style="font:10pt Times New Roman, Times" pid="123">
This Amendment contains only the Cover Page, this Explanatory Note.
</p>`;
let div = document.createElement("div");
div.innerHTML = htmlAsText;
div.querySelector("p").removeAttribute("pid");
document.querySelector("body").appendChild(div)

createElement ()removeAttribute ()

相关内容

  • 没有找到相关文章

最新更新