Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Генерация случайной строки вида ^[a-z]{2,5}\d{6}$


Автор: OrdinaryMan 15.2.2010, 16:38
Приветствую, есть такой код

<form onsubmit="return checksmscode()" target=_blank />
<input maxlength=11 class=inp name=smscode id=smscode type=text value="">
<input type=submit value="Скачать файл" class=button>
<script>
function checksmscode(){
    var smscode=document.getElementById('smscode').value;
    smscodeTest = "^[a-z]{2,5}[0-9]{6}$"; 
    var regex = new RegExp(smscodeTest); 
    if (!regex.test(smscode)) {
        alert('Неверно введен код, введите буквы и цифры. Например - ок482474');
        return false;
    }else{
        return true;    
    }
}
</script>
В javascript'е я бессилен, но погуглив выяснил что эта конструкция [a-z]{2,5}[0-9]{6} значит, что в правильный код состоит из - от 2 до 5 букв и 6 цифр от 0 до 9. Возможно ли как то подобрать эти символы или может ктото генератор набросает, как мне кажется буквально пару строк займет

Автор: 12345c 15.2.2010, 19:43
Перебрать 1 млрд. комбинаций и тестировать их, отправляя запросы через веб? Или вопрос был в другом?

Автор: OrdinaryMan 15.2.2010, 23:59
Цитата(12345c @ 15.2.2010,  19:43)
Перебрать 1 млрд. комбинаций и тестировать их, отправляя запросы через веб? Или вопрос был в другом?

Нет, пока перебирать ничего не нужно, я хотел что бы ктото, кому не сложно,  написал скрипт который выводит рандомно это строчку:
Цитата

[a-z]{2,5}[0-9]{6} код состоит из - от 2 до 5 букв и 6 цифр от 0 до 9.


только начал пхп учить, но выглядит примерно так:

Код

for($i=0;$i<5;$i++){ // выводит рандомно 5 букв
$a = rand(97,122);
echo chr($a);
}
echo "<br>";
for($i=0;$i<6;$i++){ // выводит 6значное число рандомно
$z = rand(0,9);
echo $z;
}

но нужно необходимо чтобы буквы и цифры были обьеденены в 1 строчку, и выводило при обращение к скрипту от 2-5 букв+ цифры рандомно, по идеи он должен работать, потом когда подучу пхп, сделаю так чтобы сгенерировало и сохранило в файл, а потом брутило, код передается get'ом. 

Автор: 12345c 16.2.2010, 01:00
Это так:
(вопрос совершенно отличен от предыдущей темы, поэтому выделю тему в новую)
Генерация случайной строки вида ^[a-z]{2,5}\d{6}$

Код

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Generate ^[a-z]{2,5}\d{6}$</title>
    <script type="text/javascript">
      run = function(){
        s='';
        iMax = 2 + Math.floor(Math.random() *4);
        for(i=0; i < iMax; i++)
          s += getStr('abcdefghijklmnopqrstuvwxyz');
        for(i=0; i <= 5; i++)
          s += getStr('0123456789');
        document.getElementById('d1').innerHTML = s;
      }
      getStr = function(s){
        return s.charAt(Math.floor(Math.random() * s.length));
      }
    </script>
  </head>
  <body style="padding: 20px 40px">
      <button onclick="run()">Generate ^[a-z]{2,5}\d{6}$</button><br>
      <br>
      <div id="d1" style="font-family: Lucida Console, Courier">(Zdes' budet primer)</div>
  </body>
</html>

Работу кода можно видеть на Google Code Playground: http://savedbythegoog.appspot.com/?id=5e3046264ebf872450fa4b34ddb28dd761d3efaf

(вход в песочницу для правок - http://code.google.com/apis/ajax/playground/?exp=feeds#jquery . Нажать "Edit HTML", затем полностью заменить редактируемый код в "Edit Code", править (кириллицу не писать - баг сервиса!) и нажать "Run Code")

Добавлено через 10 минут и 42 секунды
B это не раздел ПХП, код на нём пишут в другом разделе.
(Брутфорс для стольких комбинаций в вебсервисе перебрать нереально, это 27 в 5-й степени миллионов.)

Автор: OrdinaryMan 16.2.2010, 01:53
спасибо, как раз то что нужно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)