Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2012, 22:23
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

Выделить последний и символ
Подскажите как реализовать выделение цветом последнего и первого символа в тексте.
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2012, 07:38
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

<html>
<script>
text = "Съешь еще этих мягких французских булок да выпей же чаю, жуёба"

reg = /\s*(\S)(.*)(\S)\s*/
text = text.replace(reg, "<font color='red'>$1</font>$2<font color='red'>$3</font>")//крайние символы $1 $3, середина $2

document.write(text)
</script>
</html>

Последний раз редактировалось Livanderiaamarum, 15.01.2012 в 07:49.
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2012, 10:05
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от bohdantheone
Подскажите как реализовать выделение цветом последнего и первого символа в тексте.
по поводу первого, можно использовать css
http://htmlbook.ru/css/first-letter
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2012, 10:48
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

Livanderiaamarum,
спасибо, как в этих РегЕкспах разобраться=))) Что есть хорошего почитать?
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2012, 11:55
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Гавнокод from 9xakep:
<html>
<script>
text = "trololo"
var str = text.split(' ').join('').split('')
var len = text.split(' ').join('').split('').length
var len2 = text.split(' ').length - 3
var first = 0
var last = len-1
var addText = text.substr(1, len+len2)
document.write("<font color='red'>"+ str[first] +"</font>"+ addText +"<font color='red'>"+ str[last] +"</font>")
</script>
</html>
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 15.01.2012 в 15:39.
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2012, 12:37
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

<html><body>
<div id="d1" style="color:#fff">Съешь еще этих мягких французских булок да выпей же чаю, жуёба
25утолимоипечали</div>
<script>
text = document.getElementById('d1').innerHTML;

reg = /\s*(\S)(.*)(\S)\s*/
text = text.replace(reg, "<font color='red'>$1</font>$2<font color='red'>$3</font>")//крайние символы $1 $3, середина $2

document.write(text)
</script>
</html>

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

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

Почитайте Регулярные Выражения Фридл.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2012, 13:03
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

<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>


Внутрь класса можно добавить символ, который будет выделен, например следующий выделит точку, если она есть:
[a-zа-яё.]


Такой подход будет работать быстрее, хотя он и смешанный.

Работать будет даже при одном символе в тексте.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 15.01.2012 в 14:09. Причина: ё
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2012, 13:47
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

<html><body><style>#d1:first-letter{color:red}</style>
<div id="d1">Съешь еще этих мягких французских булок да выпей же чаю, жуёба
25утолимоипечали23</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>

Не будет работать, т.к.: [a-zа-я] ищет только буквы
__________________
оляля, ололо
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2012, 14:07
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

9xakep,
Всё будет работать. Не умеешь читать ?
Сообщение от Gozar Посмотреть сообщение
Внутрь класса можно добавить символ, который будет выделен, например следующий выделит точку, если она есть:
[a-zа-яё.]
Добавил ё, оно отдельно в русском языке, хотя я не знаю слов заканчивающихся на ё.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 15.01.2012 в 14:20.
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2012, 14:16
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

9xakep,
Ты в своём говнокоде не забудь вырезать переводы строки.

Регуляркой вырезать будешь?!

ps: Задача не такая простая как кажется на первый взгляд и зависит от условия:
- откуда берется текст?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 15.01.2012 в 14:22.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделить текст внутри input при получении фокуса InviS jQuery 12 30.09.2015 17:12
Отрезать от строки последний символ и полуичть его Livaanderiamarum Общие вопросы Javascript 19 07.01.2012 19:20
Как выделить нужный текст? povter3091 Элементы интерфейса 2 03.11.2009 20:34
Как удалить последний символ строки? PAMAC Events/DOM/Window 5 18.10.2009 15:01
найти и удалить символ ivanweb jQuery 6 07.06.2009 22:47