Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как найти перемешку русских и английских букв (например в notepad++)? (https://javascript.ru/forum/misc/58097-kak-najjti-peremeshku-russkikh-i-anglijjskikh-bukv-naprimer-v-notepad.html)

Momon 04.09.2015 13:50

Как найти перемешку русских и английских букв (например в notepad++)?
 
Как известно в JS имена переменных могут быть и на русском. А могут быть, о ужас, из смеси русского и английского! Меня пугает мысль о том что у меня есть такое добро. Как проверить?

Чем опасно? Написал ты по ошибке переменную c русской буквой, копировал её везде такую, а потом пытаешься вызывать откуда нибудь, а она не работает.

О, придумал! Можно в notepad++ включить проверку английского, но не только в комментариях, как у меня стояла, а везде. Там галочку надо убрать в настройках плагина: check only comments and strings. Т.е. чтобы весь код шерстила. Ну и соответственно все переменные на английском, тогда например var abc через русскую A - сразу же подчеркнёт. А дальше можно глазками просмотреть весь код где там и что подчеркнуло.

tsigel 04.09.2015 16:27

Momon,
как то у нас в проекте в class закралась русская "с". Искали дня 3. теперь у меня всегда на готове регулярка для поиска всех русских символов,очень помогает.

Deff 04.09.2015 16:33

Аналогов по виду идентичных русским буквам - немного, обычно гласные,
Типичные траблы с a и c. Если пишешь секциями, с проверкой работоспособности каждой, - ошибка возникает редко. Есть онлайн тестеры переменных, если они определены через var, либо как переменные, заданные в объекте. Идентичные по виду, но разные по алфавиту - выделяются(подчеркиванием или миганием) Можно нарисовать самому скрипт проверки

Deff 04.09.2015 16:42

Можно задать шрифт в корне отличающийся с русским от латинского и подсветить один из алфавитов

Momon 04.09.2015 17:57

Deff,
tsigel,

Я придумал регулярку для Notepad++! :write:
([а-Я][a-Z])|([a-Z][а-Я])
И кое что даже у себя нашёл, не ожидал! :blink:
Пользуйтесь, ребята! И жду критики! :victory:

PS Не забудьте включить регулярные выражения при поиске в Notepad++
PPS Чем угодно готов заниматься, лишь бы не работать :lol:

forwardonly2015 04.09.2015 18:24

Цитата:

Сообщение от Momon
([а-Я][a-Z])|([a-Z][а-Я])

странная регулярка. В "классике" должно быть что -то вроде
([а-яёА-ЯЁ][a-zA-Z])|([a-zA-Z][а-яёА-ЯЁ])
или
([а-яё][a-z])|([a-z][а-яё]) с модификатором i

Momon 04.09.2015 18:31

forwardonly2015,

Признаю свою ошибку!!! У меня галка стояла не учитывать регистр!!! :( Так будет правильно:
([а-яёА-ЯЁ][a-zA-Z])|([a-zA-Z][а-яёА-ЯЁ])

forwardonly2015 04.09.2015 18:38

Momon,
Я не знаю конечно, что там в блокноте, но подозреваю, что там по дефолту стоит флаг i, попробуйте переписать регулярку в нижнем регистре, она скорей всего будет работать точно также.
Цитата:

Сообщение от Momon
хотя зачем она нужна

она определенно нужна, иначе будут пропускаться сочетания, такие как ёp, например, где p -- латинская

nerv_ 04.09.2015 18:38

Цитата:

Сообщение от tsigel
как то у нас в проекте в class закралась русская "с".

поэтому IDE :)

Momon 04.09.2015 18:42

forwardonly2015,
Да, да так и было! Ваша регулярка абсолютно верная, а моя нет!


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