Я создаю текстовый редактор для своего сайта, и мне нужна функция find-and-replace, которая находит каждый раз, когда текст возникает, выделяет его и, если пользователь выбирает, заменяет его. Затем он переходит на следующее вхождение и делает то же самое. Я видел этот код:Найти и заменить итерацию с помощью javascript
var haystackText = "";
function findMyText(needle, replacement) {
if (haystackText.length == 0) {
haystackText = document.getElementById("haystack").innerHTML;
}
var match = new RegExp(needle, "ig");
var replaced = "";
if (replacement.length > 0) {
replaced = haystackText.replace(match, replacement);
}
else {
var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + needle + "</div>";
replaced = haystackText.replace(match, boldText);
}
document.getElementById("haystack").innerHTML = replaced;
}
, но он работает только с DIV, который имеет текст его, а не текстовое поле, как у меня, а также, он находит и/или заменяет все вхождения сразу, вместо того, чтобы повторять их один за другим.
Как это сделать?
Я использую texarea, и я бы хотел использовать свойства 'selectionStart' и' selectionEnd'. – TricksfortheWeb