Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выделить последний и символ (https://javascript.ru/forum/misc/24816-vydelit-poslednijj-i-simvol.html)

zebra 15.01.2012 14:39

Цитата:

Сообщение от Gozar
Добавил ё, оно отдельно в русском языке, хотя я не знаю слов заканчивающихся на ё.

ёмаё :)

monolithed 15.01.2012 14:57

Самый простой вариант:
<p id="text">text</p>

<script>
var text = document.getElementById('text');
text.innerHTML = text.innerHTML.replace(/^.|.$/g, '<span style="color:red;">$&</span>');
</script>


Без регулярных выражений:
<p id="text">text</p>

<script>
var elem = document.getElementById('text'),
	text = elem.innerHTML,
	span = ['<span style="color:red;">', '</span>'];

elem.innerHTML = span[0] + text.charAt(0) + span[1] + text.slice(1, -1) + span[0] + text.slice(-1) + span[1];
</script>

Livanderiaamarum 15.01.2012 15:02

Цитата:

Сообщение от Gozar (Сообщение 150725)
Рега во первых страшная - так писать её не стоит, подозреваю она всю память сожрет в длинном тексте создавая на каждый символ промежуточные сохранения, во вторых ищет не то, что должна искать.

Лучше привязываться к началу и концу текста, а не к совпадению чего-то.
.

толсто

Gozar 15.01.2012 15:03

monolithed,
Тема не имеет смысла без понимания входных данных. Все предложенные варианты включая мой не имеют смысла без озвучки автора входных данных.

Цитата:

Сообщение от Livanderiaamarum (Сообщение 150749)
толсто

Нет не толсто, это вообще не троллинг.

Livanderiaamarum 15.01.2012 15:04

monolithed,
Если у тьебя первым символом будет пробел что будешь делать? Красным его выделять?

Livanderiaamarum 15.01.2012 15:06

<html><body><style>#d1:first-letter{color:red}</style>
<div id="d1"> Съешь еще этих мягких французских булок да выпей же чаю, жуёба
25утолимоипечали </div>
<script>
var text = document.getElementById('d1').innerHTML;
text = text.replace(/([a-zа-яё])$/i, "<font color='red'>$1</font>");
document.getElementById('d1').innerHTML = text;
</script>
</html>


Братишка, твой способ не работает. Почитай Регулярные Выражения Фридл.

Gozar 15.01.2012 15:08

Livanderiaamarum,
Цитата:

Сообщение от Gozar (Сообщение 150750)
Тема не имеет смысла без понимания входных данных. Все предложенные варианты включая мой не имеют смысла без озвучки автора входных данных.

Что делать если там теги?

Gozar 15.01.2012 15:12

Livanderiaamarum, пробел функционально принадлежит к знакам препинания и не является текстовым символом.

Хочешь разводить флуд, разводи. Задача всё равно не решена.

monolithed 15.01.2012 15:13

Цитата:

Сообщение от Livanderiaamarum
Если у тьебя первым символом будет пробел что будешь делать?

Как сказал Gozar входные данные не известны, если ведущие пробелы не нужно учитывать, то логично их обрезать или пропустить

bohdantheone 15.01.2012 15:14

Цитата:

Тема не имеет смысла без понимания входных данных
Входные данные: обычный текст, длинной до 500 символов. Пробелы до и после текста в игнор


Часовой пояс GMT +3, время: 17:54.