![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
Есть рег... на русском. Просто на русском заводить нельзя, поэтому ввожу через /uXXXX.. И вот чё-то он не находит совпадение рега со стрингой.
Вот тестовый пример, тут мы ищем аналоги слов "емэйл" (с разными типами написания)
-------------------- =) |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Убери \s*, ошибочных совпадений много будет.
О чём идёт речь?
логика... Выход: убирай всё кроме второй и последней строки, в последней замени test3 на test2. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| Innuendo |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
т.е. так?
нет совпадения =( а почему /s* убрать? мне бы желательно чтоб была возможность пробела между тире (если оно есть) Это сообщение отредактировал(а) Innuendo - 1.10.2006, 20:27 -------------------- =) |
||||
|
|||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Просто сравни свой и мой реги, обрати внимание на \s:
Также кинь тестовую строку на alert, убедись что там не кракозябры (кодировка выставлена правильно). Рег как и всё строковое работает в юникоде, но твой исходник не в юникоде, браузер декдирует согласно выбранной кодировке. У меня рег выше работает:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
ок.. да.. работает.. Но я не понимаю, объясните плз, почему не работает:
если реги равны (только один выведен в кодировке, а другой просто на кириллице) -------------------- =) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Читай внимательно. Просто кирилицей реги будут зависеть от кодировки на странице. Впрочем это не проблема, если сервер всегда указывае кодировку правильно. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
ааа. у тебя \s - пишется \s, а у меня \u005cs =)
ну я изменил на \s в моём тесте... и страница отображается в кириллице koi8-r. Я меняю на windows-1251 и всё работает - оба теста - true =) а почему так происходит с кодировкой? я всего-то эти символы заменил Это сообщение отредактировал(а) Innuendo - 1.10.2006, 21:14 -------------------- =) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
unicode: 2 байта koi8-r, cp1251: 1 байт 2 байта больше 1 байт, значит: 2 байта convertTo 1 байт - без проблем 1 байт convertTo 2 байта - необходимо знать кодировку. Значит кодировка это функция map(byte) -> unicode char, значит если функция не верна (кодировка не верна), то получим не читабельный в кирилице текст или кракозябры, зависит от того какую кодировку возьмёт браузер. Если и рег и текст на странице заданы в однобайтовой кодировке, то находить инфу он должен всегда, т.к. правила декодирования однобайтовых символов юникод едины для всего исходника. Но если рег задан как \uHHHH, он уже в юникоде и будет искать одни и те же коды символов (кирилицы) какую ты кодировку странице не ставь. Ясно что однобайтовый текст будет выдавать разные юникодовские коды символов, в зависимости от выбранной кодировки, т.е. кирилица будет только если кодировка исходника совпадает с выбранной кодировкой. Отсюда должно быть ясно, почему рег не может найти совпадений если кодировка не верна. Что бы избежать всей этой лажи лучше пользовать UTF-8. Либо всё сохранить как cp1251 и убедиться, что сервак указывает верную кодировку в Content-type заголовке отдавая страницы и скрипты. В обоих случаях наверное лучше писать рег просто символами, а не \uHHHH кодами, что бы повысить читабельность. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
просто символами не могу - xul расширение не допускает просто киррилицу в яваскрипте... (если я сам её ввёл в исходнике) а кодировка на сайте, котором это делается стоит в content-type: windows 1251 -------------------- =) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Допускает если кодировка исходника может перегнать сие в юникод. Естественно если у тебя в декларации xml лежит UTF-8, а сам сорец в CP1251 или сервер указывает кодировку отдавая файл отличную то реальной, то будет лажа. Писать же всё \uHHHH конечно будет работать в любом случае хорошо, но исходник не читабелен, что ИМХО большой минус. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |