Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2013, 10:44
Аспирант
Отправить личное сообщение для tazododu Посмотреть профиль Найти все сообщения от tazododu
 
Регистрация: 18.02.2010
Сообщений: 90

Непосильная регулярка
Всем привет!
Есть задача - в строке все слова кроме первого, написанные капслоком и имеющие 5 и более больших букв, заменять на их аналог, но строчными буквами.
Сумел написать такую вот регулярку для проверки всей строки на наличие таких слов
[A-ZА-ЯЁҐЄЇІ]{5,}
, но вот с поиском и заменой возникли трудности. Надеюсь на вашу помощь
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2013, 11:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script>
var str = '1вфыааSDSSSSSSSSD  2DFS  3DSSDFSDFSD   4DFSDFFDS   5DFSDFFDS';

function replacer(str, p1, p2, offset, s)
  {
     if( p1) return str;
     return str.toLowerCase();
   }

var str = str.replace(/(^\S*)|(\S{5,})(?=\s|$)/g, replacer);
alert(str);
</script>

Последний раз редактировалось Deff, 04.01.2013 в 13:03.
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2013, 13:04
Аспирант
Отправить личное сообщение для tazododu Посмотреть профиль Найти все сообщения от tazododu
 
Регистрация: 18.02.2010
Сообщений: 90

Сообщение от Deff
01 <script>
02 var str = '1вфыааSDSSSSSSSSD 2DFS 3DSSDFSDFSD 4DFSDFFDS 5DFSDFFDS';
03
04 function replacer(str, p1, p2, offset, s)
05 {
06 if( p1) return str;
07 return str.toLowerCase();
08 }
09
10 var str = str.replace(/(^\S*)|(\S{5,})(?=\s|$)/g, replacer);
11 alert(str);
12 </script>
Спасибо! Очень выручили!!
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2013, 13:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

tazododu,
Ды тут сражался с такой фишкой, в ИЕ6-8 без тегов </script> в топике toLowerCase(); не работал
( Возился - пока просёк
Т.е выложенный так:


var str = '1вфыааSDSSSSSSSSD  2DFS  3DSSDFSDFSD   4DFSDFFDS   5DFSDFFDS';

function replacer(str, p1, p2, offset, s)
  {
     if( p1) return str;
     return str.toLowerCase();
   }

var str = str.replace(/(^\S*)|(\S{5,})(?=\s|$)/g, replacer);
alert(str);

Последний раз редактировалось Deff, 04.01.2013 в 13:08.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярка для вложенных "тегов" типа [[tag? &attr="[[nested]]"]] danik.js Общие вопросы Javascript 5 10.12.2012 04:41
регулярка для парсинга SQL запроса Yurik Общие вопросы Javascript 2 09.12.2011 15:08
Регулярка для выдергивания id greatilya Общие вопросы Javascript 2 24.10.2011 11:31
Регулярка на дробные числа shkarbatov Javascript под браузер 14 29.07.2011 01:05
регулярка и переменные розовый слоник Общие вопросы Javascript 2 01.06.2011 19:07