Я ищу текст, содержащийся в нескольких DIVS, в поисках вхождения подстроки в строке.
Пример: поиск «1-го», поиск совпадения в строке (101-й), а затем яхочу заменить всю строку (101-ю) другой строкой (сто первой).
Я могу найти вхождение, но не могу понять, как вернуть ВСЁ слово, в котором встречается подстрока, чтобы заменить его,
Сценарий: DIVS содержит маршруты, содержащие номера улиц. Я преобразовываю пронумерованные улицы в слова, чтобы текст в речевой движок правильно произносил числа. Таким образом, может быть 91-й, который я заменил бы на девяносто первый, или 21-й, который я бы заменил на двадцать первый. У меня уже есть функция, которая позаботится о любых возможных комбинациях заменяющих слов. Мне просто нужно выяснить, как захватить всю строку вхождения для реализации replace ().
Причина, по которой мне нужна вся строка (слово), в котором находится вхождение, заключается в том, чтоfunction numberToWords.toWordsOrdinal () Я передам строку, которая возьмет всю строку (101-ю) и преобразует ее в сотню первую. Я ищу все числа, заканчивающиеся на 0-й, 1-й, 2-й, 3-й, 4-й,5, 6, 7, 8 и 9 и преобразование в версию слова чисел. Любые числа, которые не содержат порядковый номер, будут оставлены в покое.
Вот код, который у меня есть:
$("div.dirInstruction").each(function() {
if ($(this).text().indexOf("1st") >= 0) {
// found occurrence
alert($(this).text()); // < ---- for visual debug - returns all text in div of match
var StringThatContainsMatch = ?????; <----- need whole word that contained match
var replaceNumber = numberToWords.toWordsOrdinal(StringThatContainsMatch);
var new_word = $(this).text().replace(StringThatContainsMatch, replaceNumber);
$(this).text(new_text);
}
});