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

Livanderiaamarum 15.01.2012 15:15

Цитата:

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

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

Хорошо, не проще ли написать решения для самых популярных возможный способов? например предположил что атм теги, ну ygbib для тегов в чем проблема.

Gozar 15.01.2012 15:17

Цитата:

Сообщение от bohdantheone (Сообщение 150761)
Входные данные: обычный текст, длинной до 500 символов. Пробелы до и после текста в игнор

Обычный текст без тегов и переносов строк заканчивающийся на любой текстовый символ или знак препинания?

bohdantheone 15.01.2012 15:20

Gozar,
да без тегов и переносов

Gozar 15.01.2012 15:22

Выбирай самый простой вариант monolithed, он короче в записи.

Livanderiaamarum 15.01.2012 15:26

а чем мой способ плох я так и не понял? Я про память? обьясни пожалуйста? - только то что память жрет я прочитал уже. я хочу понять что из этого вытекает?

monolithed 15.01.2012 15:29

Немного не спортивно, но как-то так:

<p id="text">   text   </p>

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

monolithed 15.01.2012 15:33

Цитата:

Сообщение от Livanderiaamarum
Я про память?

Вобще использования регексов лучше избегать, где это возможно, т.к. там более сложный лексический анализ. Чтобы это понять, лучше посмотреть исходники.

Livanderiaamarum 15.01.2012 15:41

Цитата:

Сообщение от monolithed (Сообщение 150768)
Вобще использования регексов лучше избегать, где это возможно, т.к. там более сложный лексический анализ. Чтобы это понять, лучше посмотреть исходники.

Да я уже догадался ка они работают, образуется стек))

анализируется текст по выражению с первого символа) при подхождении к шаблону символ(или группа) добавляется в "стек". если стек наполнился до конца шаблоном то вхождение найдено) если нет, то стек сбрасывается))

это я догадался. может я не прав? но лично я бы так сделал

9xakep 15.01.2012 15:41

А мой делает более интересные вещи :D
<html><div> трололо</div>
<script>
var text = document.getElementsByTagName('div')[0].innerHTML
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>

Livanderiaamarum 15.01.2012 15:42

Цитата:

Сообщение от monolithed
т.к. там более сложный лексический анализ.

И в чем же там лексический анализ? Может морфологический ты хотел сказать?


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