Как сделать, чтобы последнее слово внутри абзаца оборачивалось в span?
Как сделать, чтобы последнее слово внутри абзаца оборачивалось в span?
<p>Обернуть в span последнее слово</p>
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
var p = document.getElementsByTagName('p')[0];
var text = p.innerHTML; // Получаем текст, который в тэге
var arr = text.split(' '); // Делим строку на слова
var word = arr[arr.length - 1]; // Берем последнее слово
p.innerHTML = text.slice(0, text.lastIndexOf(word)) + `<span>${word}</span>`;
span {
color: red;
}
<p>Обернуть в span последнее слово</p>
Автор решения: OPTIMUS PRIME
→ Ссылка
let p = document.querySelector("p");
p.innerHTML = p.innerHTML.replace(/\s(\S+)$/, " <span>$1</span>");
span { color: red; }
<p>Обернуть в span последнее слово?</p>
\s — "space": Любой пробельный символ,
\S — любой символ кроме пробела,
$ — условное обозначение конца строки.
$1 в строке-замене ссылается на совпадение внутри скобок.
Придется усложнить регулярное выражение, если хочется брать именно "слово" по каким-то критериям, а не просто "всё, что не пробел".