Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Непосильная регулярка (https://javascript.ru/forum/misc/34411-neposilnaya-regulyarka.html)

tazododu 04.01.2013 10:44

Непосильная регулярка
 
Всем привет!
Есть задача - в строке все слова кроме первого, написанные капслоком и имеющие 5 и более больших букв, заменять на их аналог, но строчными буквами.
Сумел написать такую вот регулярку для проверки всей строки на наличие таких слов
[A-ZА-ЯЁҐЄЇІ]{5,}
, но вот с поиском и заменой возникли трудности. Надеюсь на вашу помощь :thanks:

Deff 04.01.2013 11:58

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

tazododu 04.01.2013 13:04

Цитата:

Сообщение от 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>

Спасибо! Очень выручили!!

Deff 04.01.2013 13:06

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


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