Удалить определенный текст из textarea в Javascript

Вопрос: Мне нужно немного ввести лучший способ удалить определенное слово или фразу в текстовой области. У меня есть входное поле с названием input. Я хочу найти эту область для слова, которое помещается в поле формы с name а затем удаляется из input. Ни один из кодов, которые я пробовал, не работает, и большинство результатов поиска

Вопрос:

Мне нужно немного ввести лучший способ удалить определенное слово или фразу в текстовой области. У меня есть входное поле с названием 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»); var data = textarea.value; textarea.value = textarea.value.replace(name.value, «»); }

Рабочий скрипт

Ответ №1

Вы можете добавить функцию 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, «»); } Ответ №2

Это решение 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(), «»)); }); });

Оцените статью
Добавить комментарий