从Javascript中的文本区域删除某些文本

Remove certain text from textarea in Javascript

本文关键字:文本 删除 区域 Javascript      更新时间:2023-09-26

我需要一些关于删除文本区域中某个单词或短语的最佳方法的输入。我有一个名为input的输入字段。我想在该区域中搜索放入名为name的表单字段中,然后从input中删除的单词。我尝试过的代码都不起作用,大多数搜索结果都会产生令人不快的结果。

function delete() {
    var name = document.getElementById("name").value;
    var textarea = document.getElementById("input").value;
    var data = textarea.length;
    for (var i = 0; i < data.length; i++) {
        if (textarea.substr(i, data) == name) {
            textarea.value = "";
        }
    }
}

我早些时候尝试的东西没有成功。

不确定你想做什么,但这是正确的代码:(你的代码中有很多错误

function deleteValue() {  //instead of "delete"
    var name = document.getElementById("name");
    var textarea = document.getElementById("result");  //intead of "input"
    var data = textarea.value;
    for (var i = 0; i < data.length; i++) {
        if (data.substr(i, data) == name.value) {
            textarea.value = "";
        }
    }
}

需要考虑的几点:

  • 将文本输入名称从input更改为其他名称,因为它是tag name
  • 不能有函数名delete,因为它是javascript中的保留字。使用其他类似deleteValue的东西

更新

我想这就是你想要的。。

function deleteValue() {
    var name = document.getElementById("name");
    var textarea = document.getElementById("result");
    textarea.value = textarea.value.replace(name.value, "");
}

工作Fiddle

您可以将replaceAll函数添加到String对象中。如果要删除所有出现的特定文本。

(function() {   
    if (!String.replaceAll) {
        String.prototype.replaceAll = function replaceAll(replace, value) {
            return this.replace(new RegExp(replace, 'g'), value);
        };
}
}());

并且修改delete函数应该是这样的:

function deleteValue() {
    var name = document.getElementById('name');
    var textarea = document.getElementById('result');
    var data = textarea.value;
    textarea.value = textarea.value.replaceAll(name.value, "");
} 

这是jQuery解决方案(我提供它是因为您标记了jQuery):

jsFiddle

// to execute code when the page is entierly loaded
$(document).ready(function(){
    // click event on the button
    $('#myButton').click(function(){
        // get the content of the #result textarea
        val = $('#result').val();
        // remove all occurence of content of #name in #result
        $('#result').val(val.replace($('#name').val(), ""));
    });
});