Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 24 Май, 2012, 09:48:21

Страниц: [1]
Печать
Автор Тема: Сравнение строк  (Прочитано 2109 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NRG    ↓ 
28 Декабрь, 2007, 03:09:06
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

Пытаюсь написать сриптик, который сравнивал бы две строки...
 
А именно....
 
Скрипт не дожен допускать к регистрации пользователей, у которых :
1. Логин < 6 символов
2. Логин содержит недопустимые символы.( !@#$%^&*()+=[]\\\';,./{}|\":<>? )
3. логин состоит из одинаковых символов (напр. "аааааа", "111111" , а вот "Аааааа" - уже допускается )
 
Первые две задачи реализовал...но вот с третьей уже час сижу никак не могу додуматься...
Мож кто-нить хоть идейку подкинет ?
 
вот код моей ф-ии :
 
Text
function checkUserlogin()
{
    var userlogin=document.forms['frmRegister'].eUlogin.value;
    //a-z0-9_a-z0-9
    //a-z\d
    var flag=false;
    var iChars = "!@#$%^&*()+=[]\\\';,./{}|\":<>?";
    for (var i = 0; i < userlogin.length; i++)
    {
        if (iChars.indexOf(userlogin.charAt(i)) != -1)
        {
            document.getElementById("userloginresult").innerHTML = "<span style='color:#FFFF00'> Your Windows Live Lounge User Name has special characters. These are not allowed.</span>";
            //document.forms['frmRegister'].elements['eUlogin'].focus();
            flag=true;
            break;
        }
    }
    if(flag==false)
    {
        if (userlogin.length < 6)
        {
            document.getElementById("userloginresult").innerHTML = "<span style='color:#FFFF00'> Windows Live Lounge User Name must contain at least 6 characters!</span>";
        }
        else
        {
            xmlHttp=GetXmlHttpObject()
            if (xmlHttp==null)
            {
                alert ("Browser does not support HTTP Request")
                return
            }
и т.д. ............
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
AlexB    ↓ 
28 Декабрь, 2007, 03:21:29 , спустя 12 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

Сходу приходит в голову два варианта:
PHP

str_repeat($a[0], strlen($a)) != $a
 
или
PHP

substr_count($a, $a[0]) != strlen($a)
 
Может кто чего поизящьней придумает?
Записан

AlexB    ↓ 
28 Декабрь, 2007, 03:33:27 , спустя 11 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

Oooopsss ... функция-то похоже нужна JS, не обратил внимания.
Но идею подкинул. :)
Записан

NRG    ↓ 
28 Декабрь, 2007, 03:36:35 , спустя 3 минуты 8 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

Но идею подкинул. :)

За идею спасибо !   =)
 
А вот по поводу ф-ии ....
 
но ниче....     =)
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
vasa_c    ↓ 
28 Декабрь, 2007, 03:44:47 , спустя 8 минут 12 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

if (str.search(/^(.)\1+$/) != -1) alert("Ацтой!");
Записан

AlexB    ↓ 
28 Декабрь, 2007, 03:52:30 , спустя 7 минут 43 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

Резюмирую: Не забываем, что JS умеет работать с регулярками. Причем если в php для скорости работы скрипта лучше по возможности обходится строковыми функциями, то для JS это не столь актуально. Поэтому компактная регулярка - отличное решение.
Записан

NRG    ↓ 
28 Декабрь, 2007, 07:23:14 , спустя 3 часа 30 минут 44 секунды
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

благодарен всем, кто откликнулся!
но все же сделал по своему...      =)
 
Text
    var userloginSeq = document.forms['frmRegister'].elements['eUlogin'].value;
    var Same = true;
   
    for (var i = 0; i < userloginSeq.length; i++)
    {
     if (userloginSeq.charAt(0) == userloginSeq.charAt(i))
      {}
      else
      {
       Same = false;
       break;
      }
    }
 
    if (Same == true)
     {
      alert("Please enter nonsequential characters in the \"User Name\" field.");
      document.forms['frmRegister'].elements['eUlogin'].focus();
     }

Все оказалось вот так вот просто....     =)
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
AlexB    ↓ 
28 Декабрь, 2007, 07:33:51 , спустя 10 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

NRG, у тебя работа сдельная что ли?  Платят за строчку кода? :)
Особенно вот это шедевр:
Text

if (userloginSeq.charAt(0) == userloginSeq.charAt(i))
{}
else
{
Same = false;
 
« Последнее редактирование: 28 Декабрь, 2007, 07:35:52 от AlexB » Записан

NRG    ↓ 
28 Декабрь, 2007, 07:57:39 , спустя 23 минуты 48 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81


NRG, у тебя работа сдельная что ли?  Платят за строчку кода? :)
Особенно вот это шедевр:
Text

if (userloginSeq.charAt(0) == userloginSeq.charAt(i))
{}
else
{
Same = false;
 

AlexB, я понимаю что это полный порожень....
Дело в том, что на меня давят со сроками и в связи с этим спать у меня получается прибл 6 часов в сутки....и это длится уже почти неделю...   =(
Соответственно, соображалка тоже дает о себе знать...
 
Те строки кода до которых я "додумался" вообще ацтойные , сам вижу.
Но это лиш манюсенькая часть проекта , плюс учитывая что на мне не один проект...
 
Так что не смейтесь с меня и с моего кусочка кода сильно...
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
adw0rd    ↓ 
28 Декабрь, 2007, 08:26:51 , спустя 29 минут 12 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17623
Сила слова: 1.67

ИМХО, недосып - влияет намного больше на алгоритм, нежели на реализацию, тем более достаточно примитивную...
 
Text

 
if (userloginSeq.charAt(0) != userloginSeq.charAt(i)) {
  Same = false;
  break;
}
 
 
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Страниц: [1]
Печать
 

Перейти в: