Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.05.2013, 23:39
Новичок на форуме
Отправить личное сообщение для Mirach Посмотреть профиль Найти все сообщения от Mirach
 
Регистрация: 17.04.2013
Сообщений: 2

Обработка строки по словам
Здравствуйте. Я получил данные из многострочного textField. Можно теперь как-нибудь обработать каждое слово в получившейся строке?
Есть словарь зарезервированных слов, и вот нужно заменить в textField все вхождения слов из словаря на их же, но только в верхнем регистре, а остальные оставить/отредактировать в нижнем регистре.
Пробовал через регулярные выражения, но помойму это не то, нужно ведь смотреть, есть ли слово в словаре и заменять или на верхний регистр или на нижний.
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2013, 00:49
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Можно и регулярными выражениями, но насколько это будет производительно - надо проверять.
// произведет замену только для "целых" abc, def
var s = 'abcdef www def xyz abc klm';
var t = s.replace(/(?:\b(abc|def)\b)|(.+?)/ig, function($0, $1, $2)
{
    return $1 ? $1.toUpperCase() : $2.toLowerCase();
});
alert([s, t].join('\n'));
Ответить с цитированием
  #3 (permalink)  
Старый 15.05.2013, 01:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

with-love-from-siberia, \b работает только с англицким.

var s = 'abcdef www def xyz abc klm';
var words = {
    'www':true,
    'def':true
};
var t = s.replace(/[a-zа-яё]+/ig, function(str)
{
    return words[str] ? str.toUpperCase() : str.toLowerCase();
});
alert([s, t].join('\n'));
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 15.05.2013, 01:19
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Aetae, согласен. Это был всего лишь пример навскидку, требующий оптимизации. Что Вы и сделали весьма элегантно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видимость строки таблицы sslab Events/DOM/Window 8 04.12.2011 21:58
Обработка строки запроса после решётки (www.сайт.ru/#123) constantant Общие вопросы Javascript 27 21.01.2011 00:07
обработка строки.. YISHIMITSY Общие вопросы Javascript 13 12.06.2010 20:48
Обработка адресной строки... demix Общие вопросы Javascript 1 14.02.2010 20:06
обработка строки badfard Общие вопросы Javascript 2 08.11.2009 17:21