Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярные выражения и русские буквы 
V
    Опции темы
polosatij
  Дата 2.5.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



возможно ли.. сли да, киньте линком "на почитать"  smile 

заранее БОЛЬШОЕ пасиба  smile 

п.с.: что-то в гоогле ничего не могу найти..

Добавлено через 11 минут и 9 секунд


странно.. нашёл.. нужно просто русские буквы использовать.. но у меня с русскими буквами почему-то не работало.. надо будет сегодня вечером посмотреть в чём трабла  smile 


--------------------
PM   Вверх
polosatij
  Дата 2.5.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8




хм.. почему не работает следующий код:

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="javascript" type="text/javascript">
function isName(elem) {
    var re =  /^([A-Z]+[a-z]*)([-]{1}[A-Z]+[a-z]*|[a-z]*)$/;
    var re_ru =  /^([А-Я]+[а-я]*)([-]{1}[А-Я]+[а-я]*|[а-я]*)$/;
    
    var str = elem;
    if(str.length == 0 || !str.match(re) || !str.match(re_ru)) {
        // showError(elem); 
        alert('false');
        return false;
    }
    
    //hideError(elem);
    alert('true');
    return true;
}
</script>
</head>

<body onload="javascript:isName('Млина')>

</body>
</html>


и как заставить работать регулярные выражения с кирилицой?


--------------------
PM   Вверх
polosatij
  Дата 3.5.2007, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



попробовал так, тоже нет: 

Код

var re_ru =  /^([\x10-\x2F]+[\x30-\x4f]*)([-]{1}[\x10-\x2f]+[\x30-\x4f]*|[\x30-\x4f]*)$/;



 smile 


--------------------
PM   Вверх
ksnk
Дата 3.5.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(polosatij @  2.5.2007,  23:55 Найти цитируемый пост)
charset=iso-8859-1"
 Вот это - принципиально?
Как правило, если хотят работать с кирилицей, пишут charset=windows-1251



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
polosatij
Дата 3.5.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(ksnk @  3.5.2007,  09:27 Найти цитируемый пост)
Вот это - принципиально?


smile

ет я по запарке там оставил.. с charset=windows-1251 у меня всё равно ничего не работает  smile 






--------------------
PM   Вверх
ksnk
Дата 3.5.2007, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



А знаки + в регулярном выражении что по твоему должны означать?
А с мат-логикой в школе дружил? Замени местами || на && в if'е
Код

function isName(elem) {
    var re =  /^([A-Za-z]*)([-]{1}[A-Za-z]*|[a-z]*)$/;
    var re_ru =  /^([А-Яа-я]*)([-]{1}[А-Яа-я]*|[а-я]*)$/;
    var str = elem;
    //alert(str.match(re_ru))
    if(str.length == 0 || (!str.match(re) && !str.match(re_ru))) {
        // showError(elem); 
      //  alert('false');
        return false;
    }
    
    //hideError(elem);
 //   alert('true');
    return true;
}

Глубиный смысл этих регулярников - ниасилил.... Расскажи, чего это должно было быть!

Это сообщение отредактировал(а) ksnk - 3.5.2007, 10:11


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Zeroglif
Дата 3.5.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(ksnk @  3.5.2007,  10:06 Найти цитируемый пост)
А знаки + в регулярном выражении что по твоему должны означать?

одно и более повторений

Интересно всё-таки посмотреть на строку, которую ловят таким регулярным.

Код

/^([А-Я]+[а-я]*)([-]{1}[А-Я]+[а-я]*|[а-я]*)$/

/*
Assert position at the start of the string «^»
Match the regular expression below and capture its match into backreference number 1 «([А-Я]+[а-я]*)»
   Match a single character in the range between "А" and "Я" «[А-Я]+»
      Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
   Match a single character in the range between "а" and "я" «[а-я]*»
      Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the regular expression below and capture its match into backreference number 2 «([-]{1}[А-Я]+[а-я]*|[а-я]*)»
   Match either the regular expression below (attempting the next alternative only if this one fails) «[-]{1}[А-Я]+[а-я]*»
      Match the character "-" «[-]{1}»
         Exactly 1 times «{1}»
      Match a single character in the range between "А" and "Я" «[А-Я]+»
         Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
      Match a single character in the range between "а" and "я" «[а-я]*»
         Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
   Or match regular expression number 2 below (the entire group fails if this one fails to match) «[а-я]*»
      Match a single character in the range between "а" and "я" «[а-я]*»
         Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Assert position at the end of the string (or before the line break at the end of the string, if any) «$»
*/

PM MAIL WWW   Вверх
ksnk
Дата 3.5.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Угу, так , оказывается и было задумано... Можно попробовать вот так переписать
Код

    var re =  /^[A-Z]+[a-z]*(-[A-Z]+[a-z]*)?$/;
    var re_ru =  /^[А-ЯЁ]+[а-яё]*(-[А-ЯЁ]+[а-яё]*)?$/;

Несколько более правильно и букав меньше...




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
polosatij
Дата 3.5.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(ksnk @  3.5.2007,  10:06 Найти цитируемый пост)
А с мат-логикой в школе дружил?



математика? хе-хе  smile  самый любимый предмет  smile 


Цитата(ksnk @  3.5.2007,  10:06 Найти цитируемый пост)
Глубиный смысл этих регулярников - ниасилил.... Расскажи, чего это должно было быть!


Санкт-Петербург, например  smile 



нда.. шота я того..  smile 

пасиба всем  smile 



--------------------
PM   Вверх
ksnk
Дата 3.5.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Zeroglif,  я сомневался, что несколько повторяющихся больших букв в начале слова стоит считать именем. Кстати, а какой такой  тулзой можно так расшифровать регулярку?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Zeroglif
Дата 3.5.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.