从剪贴板中删除不需要的标签

Remove unwanted tags from clipboard

我有一个函数可以成功返回 1 到 100 之间随机数的 ul 列表,并将这些数字放在用户的剪贴板上。这仅适用于 IE,但这不是问题。 这个问题是剪贴板上的结果文本保留了如下所示的 li 标签。有没有办法在数据到达剪贴板之前从数据中删除这些标签?

<LI>68</LI>
<LI>97</LI>
<LI>94</LI>
<LI>43</LI>
<LI>45</LI>
<LI>65</LI>

JS代码:

function ReturnRandomNumbers() {    
    var howManyInt = parseInt(document.getElementById("txtMultiples").value);
    var listNumbers = document.getElementById("listNumbers");   
    var i = 0;      

    if (howManyInt < 101 && howManyInt > 0) {
        listNumbers.innerHTML = "";
        while (i < howManyInt) {
            AddItemToList(randomNumber());      
            i++;
        }       

        window.clipboardData.setData("text",listNumbers.innerHTML); 
        alert(listNumbers.innerHTML);
    } else {
        alert("Value must be between 1 and 100");
    }       
}


function AddItemToList(item) {
    var ol = document.getElementById("listNumbers");
    var li = document.createElement("li");
    li.appendChild(document.createTextNode(item));
    ol.appendChild(li);
}

将您的 ReturnRandomNumbers() 函数修改为:

function ReturnRandomNumbers()
{   
    var howManyInt = parseInt(document.getElementById("txtMultiples").value);
    var listNumbers = document.getElementById("listNumbers");   
    var i = 0;
    var strForClipboard = ''; 

if (howManyInt < 101 && howManyInt > 0) {
    listNumbers.innerHTML = "";
    while (i < howManyInt) {
        var randNumb = randomNumber();
        strForClipboard += (strClipboard ? '\n' : '') + randNumb;
        AddItemToList(randNumb);      
        i++;
    }       

    window.clipboardData.setData("text",strForClipboard); 
    alert(strForClipboard);
}
else {
        alert("Value must be between 1 and 100");
}       
}
var str = "<LI>68</LI>\n<LI>97</LI>\n<LI>94</LI>\n<LI>43</LI>\n<LI>45</LI>\n<LI>65</LI>"

var str = listNumbers.innerHTML;

您想从字符串中去除 li 标签,您可以进行正则表达式匹配并替换

var stripped =  str.replace(/<\/*LI>/g,'');

哪个会给

"68 97 94 43 45 65"

将其传递到剪贴板window.clipboardData.setData("text",stripped);