Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите укртотить монстра (сократить регулярку) (https://javascript.ru/forum/misc/29034-pomogite-ukrtotit-monstra-sokratit-regulyarku.html)

devote 14.06.2012 09:47

var text = '.НПКП "Кузнецкий Мост" производит лучшие в мире частные предприятия ,ООО "Вася" и ч/п "Коля". ООО "Труляля" Чпонин А.А -> "Труляля" Чпонин А.А ЧП Онин А.А -> Онин А.А т.е. Товарищ Иванов А.А. должен остаться без изменений, а ТОВ Иванов А.А. должен стать просто Ивановым. ля-ля-ля,ООО ля-ля ООО';

text = text.replace( /(^|[\s~`!@#№\$%\^&*\(\)_+\-=\[\]{};':"<>,.\/\?\\\|])(ТОВ|ООО|ДП|НПКП|ЗАО|ОАО|ЧП|СПД|ЧП|ФОП|ФЛП|ФЛ|НПП|МП|фирма|компания|частное предприятие|предприятие|ч\/п|OOO|интернет\-магазин|интернет|магазин|TM|ТМ)([\s~`!@#№\$%\^&*\(\)_+\-=\[\]{};':"<>,.\/\?\\\|]|$)/ig, "$1☺$3" );

alert( text );

Deff 14.06.2012 11:01

Цитата:

Сообщение от oneguy
где чат в mail.ru?

Умер

Deff 14.06.2012 11:04

devote,
Собственно мну то показал не про саму регулярку, а удобное добавление - изъятие регеспов из оной,
а Ваш вариант можно воткнуть внутрь цикла проверки
Основная идея
Цитата:

Сообщение от Deff
Перебор массива - в точности тож что и палка конкатенации,


devote 14.06.2012 14:37

Цитата:

Сообщение от Deff
Собственно мну то показал не про саму регулярку, а удобное добавление - изъятие регеспов из оной,

ну а кто мешает это делать?
var text = '.НПКП "Кузнецкий Мост" производит лучшие в мире частные предприятия ,ООО "Вася" и ч/п "Коля". ООО "Труляля" Чпонин А.А -> "Труляля" Чпонин А.А ЧП Онин А.А -> Онин А.А т.е. Товарищ Иванов А.А. должен остаться без изменений, а ТОВ Иванов А.А. должен стать просто Ивановым. ля-ля-ля,О\\ОО ля-ля ООО';

var words = [
    "ТОВ",
    "ООО",
    "ДП",
    "НПКП",
    "ЗАО",
    "ОАО",
    "ЧП",
    "СПД",
    "ЧП",
    "ФОП",
    "ФЛП",
    "ФЛ",
    "НПП",
    "МП",
    "фирма",
    "компания",
    "частное предприятие",
    "предприятие",
    "ч/п",
    "OOO",
    "интернет-магазин",
    "интернет",
    "магазин",
    "TM",
    "ТМ"
];

var re = new RegExp( "(^|[\\s~`!@#№\\$%\\^&*\\(\\)_+\\-=\\[\\]{};':\"<>,.\\/\\?\\\\\\|])(" + words.join("|").
    replace( /\\/g, "\\\\" ) + ")([\\s~`!@#№\\$%\\^&*\\(\\)_+\\-=\\[\\]{};':\"<>,.\\/\\?\\\\\\|]|$)", "ig" );

text = text.replace( re, "$1☺$3" );
 
alert( text );
Сиди да добавляй себе слова

tazododu 14.06.2012 15:24

всем спасибо за дельные советы! кстати, использую я ее в php preg_replace()

Deff 14.06.2012 15:49

Цитата:

Сообщение от tazododu
использую я ее в php preg_replace()

Хм - для PHP есть иная тема , а не Общие вопросы Javascript

tazododu 15.06.2012 10:03

Цитата:

Сообщение от Deff (Сообщение 181411)
Хм - для PHP есть иная тема , а не Общие вопросы Javascript

По регуляркам не нашел раздела. А то, где я ее использую разве играет такое большое значение :-?

tazododu 08.08.2012 18:25

стыдно просить, сам не могу никак написать элементарщину..
нужно проверять строку чтобы в ней были только цифры, буквы и еще пару символов
почем-то такое не работает:
(/^\w\s\-\/\.[a-яё]$/i).test()

что не так?

Hekumok 08.08.2012 18:36

Цитата:

Сообщение от tazododu (Сообщение 195695)
нужно проверять строку чтобы в ней были только цифры, буквы и еще пару символов

/^[а-яa-z\d]+$ //Внутрь [ ] вставляете еще 2 нужных символа

Не?

tazododu 08.08.2012 18:59

Цитата:

Сообщение от Hekumok (Сообщение 195700)
/^[а-яa-z\d]+$ //Внутрь [ ] вставляете еще 2 нужных символа

Не?

спасибо! :dance:


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