JavaScript replace () один html-объект другим - PullRequest
1 голос
/ 18 января 2012

Я хочу получить текстовый текст и заменить все HTML-объекты маркированного списка • на ·.

Обычный подход str.replace(/•/g,"·"); не работает.

Любой совет будет оценен.

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Когда вы возвращаете текстовое значение из текстовой области, оно уже преобразовано в его действительный символ. Чтобы заменить строку на эту строку, либо

  1. преобразовать все символы в их HTML-аналоги, а затем продолжить то, что вы делаете, или
  2. используйте символ в регулярном выражении напрямую.

Вот пример второго подхода.

var newText = oldText.replace(/•/g, "");

Вы можете поиграть с примером здесь .

Если вы хотите перейти к первому подходу, см. Этот вопрос и его ответы о способах преобразования символов в фрагменте текста в соответствующие им HTML-сущности.

2 голосов
/ 18 января 2012

Если вы хотите сделать это без jQuery:

var myTextarea = document.getElementById('id_of_your_textarea');
myTextarea.value = myTextarea.value.replace(/•/g, '·');

jQuery:

$("#myTextarea").val( $("#myTextarea").val().replace(/•/g, '·') );

.val() получит значение из элемента ввода, .val('str') установитзначение.

...