egorius: (Default)
[personal profile] egorius

Нет, други мои, не удержусь. Вот вам проверка из предыдущего поста. Такую красоту нельзя прятать, любуйтесь все:

<script language='javascript'>
  function validatePhone_contactPhoneNumber(oSrc){
    // if number is greater than 10 digits,
    // allow any digits, dashes and '+' at the beginning,
    // must have at least one dash.
    // this is what we are using for intl entry.

    var regx = new RegExp(/^\d+$/);
    var ndigitCount = 0;
    var strValue = document.all.contactPhoneNumber.value;
    var valueWithSpacesRemoved = '';
    // make sure all characters are either digits, dashes, periods, or '+'
    for (var i = 0;  i < strValue.length;  i++) {
      if (regx.test(strValue.charAt(i))) {
        ndigitCount++;
        continue;
      }
      if (strValue.charAt(i) == '-') {
        continue;
      }
      if (strValue.charAt(i) == ' ') {
        continue;
      }
      if (strValue.charAt(i) == '.') {
        continue;
      }
      return false;
    }
    //must have at least 4 digits
    if(ndigitCount < 2){
      return false;
    }

    return true;
  }
</script>

Предлагаю конкурс — кто найдёт больше несоответствий кода и комментариев…

Date: 2005-01-18 07:09 am (UTC)
From: [identity profile] -pk-sly.livejournal.com
Нунизнаю. У меня в MSDN ясно написано: "The RegExp object has no methods". А у строки - есть. Хотя.. сейчас проверил - на самом деле, работает test и у regexp'а.

А вот ещё прикол этого куска кода: запись /^\d+$/ уже сама по себе является regexp'ом и инициирование этим объектом другого регэкспа ни к чему хорошему не приводит 8)))) (а именно приводит к нереализуемому выражению). Правильно было написать x=new RegExp("^\\d+$"); (на сколько вообще целесообразно использование regexp в этой функции). Или strValue.charAt(i).test(/\d/)

Что функция должна была делать по замыслу, примерно написано в комментарии в начале.

Date: 2005-01-18 07:17 am (UTC)
From: [identity profile] egorius.livejournal.com
Правильно было бы написать либо в цикле '0' <= ch && ch <= '9', либо регэксп, но без цикла и совсем другой…
А в комментарии написано следующее: если в номере больше десяти цифр, то… А если не больше? :)

Date: 2005-01-18 07:28 am (UTC)
From: [identity profile] -pk-sly.livejournal.com
8)

Это мне напоминает обсуждение одного проекта, когда я сильно возмущался, меня спросили, что там, на мой взгляд, можно улучшить. Меня этот вопрос просто поставил в тупик.. Там ничего нельзя было улучшить. Надо было всё целиком выкинуть и написать с нуля по-человечески.

Profile

egorius: (Default)
egorius

September 2025

M T W T F S S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 15th, 2026 05:19 pm
Powered by Dreamwidth Studios