Ответы пользователя по тегу JavaScript
  • Что посоветуете для проверки форм?

    iusfof
    @iusfof
    Front-end developer
    можно воспользоваться регулярными выражениями.

    например проверка мыла

    var k, l, m;

    k = 'example@mail.ru';
    l = 'test';
    m = /^[A-z0-9]+[A-z0-9_.]+[A-z0-9]+@([A-z0-9]+[A-z0-9_.-]+[A-z0-9]+\.)+[A-z]{2,4}$/
    
    m.test(k) => true
    m.test(l) => false


    само выражение
    /^[A-z0-9]+[A-z0-9_.]+[A-z0-9]+@([A-z0-9]+[A-z0-9_.-]+[A-z0-9]+\.)+[A-z]{2,4}$/


    / - начало и конец регулярного выражения

    ^[A-z0-9]+[A-z0-9_.-]+[A-z0-9] - допускает любые символы из английского алфавита или цифры от 0 до 9, так же допускает '-' (минус), '_' (нижнее подчеркивание) и '.' (точку), если они не являются первыми или последними перед сиволом '@'.

    @ - допускает символ '@'

    [A-z0-9]+[A-z0-9_.-]+[A-z0-9]+\. - тоже самое что первая группа символов, но с точкой на конце

    [A-z]{2,4} - для обозначения домена, допускает любые латинские символы в количестве от 2 до 4 символов.

    $ - окончание выражения

    таким образом проверка инпута будет примерно такая:

    if (/^[A-z0-9]+[A-z0-9_.]+[A-z0-9]+@([A-z0-9]+[A-z0-9_.-]+[A-z0-9]+\.)+[A-z]{2,4}$/.test($('input').val())) {
    	все хорошо
    } else {
    	все плохо
    }


    либо можно запихать выражение в переменную для удобства:
    var k = /^[A-z0-9]+[A-z0-9_.]+[A-z0-9]+@([A-z0-9]+[A-z0-9_.-]+[A-z0-9]+\.)+[A-z]{2,4}$/;
    
    if (k.test($('input').val())) {
    	все хорошо
    } else {
    	все плохо
    }


    [A-z] - так же означает, что символы алфавита могут быть в верхнем регистре

    подробнее тут

    Хабр Регулярные выражения для валидации распространенны...
    Ответ написан
    Комментировать
  • Какие есть хорошие уроки javascript?

    iusfof
    @iusfof
    Front-end developer
    Ответ написан
    Комментировать
  • Как правильно обратиться к одинаковым элементам через JavaScript?

    iusfof
    @iusfof
    Front-end developer

    $('.work-description').hide();
    - 1 проблема - скрывает только первый на сайте

    странно, я потестил - у меня скрываются все элементы с одинаковым классом
    ___________________________________________________________________________________

    для
    <div class="example">
      <div class="button"></div>
      <div class="some_block"></div>
    </div>
    <div class="example">
      <div class="button"></div>
      <div class="some_block"></div>
    </div>


    next
    .next()
    1:
    $('.button').click(function(){
      $(this).next().slideToggle('normal');
    });


    или более универсально
    .parents() + .children()
    2:
    $('.button').click(function(){
      $(this).parents('.example').children('.some_block').slideToggle('normal');
    })


    или выбор сестринского элемента
    .siblings()
    3:
    $('.button').click(function(){
      $(this).siblings('.some_block').slideToggle('normal');
    });
    Ответ написан
    1 комментарий