|
Подскажите, как правильно сделать условия..
|
|
| ShampooJJ | Дата: 31 Мая 2009, 20:15 | Сообщение # 1 | ● ● ● ● ● 33 сообщения Статус: Offline | Собственно вопрос: как правильно написать скрипт типа: Code <script type="text/javascript">
<переменная> if(длина $КОДА$ = 10 символов), то if(первый символ это цифра), то if(второй символ это цифра).....if(десятый символ это цифра), то <table><td>блаблабла</td></table>
if(длина $КОДА$ = 9 символов), то if(первый символ это цифра), то if(второй символ это цифра).....if(девятый символ это цифра), то <table><td>блаблабла</td></table>
if(длина $КОДА$ = 8 символов), то if(первый символ это цифра), то if(второй символ это цифра).....if(восьмой символ это цифра), то <table><td>блаблабла</td></table> </переменная>
if(переменная = "ничего"), то <div>Не выполнено какое-то из условий</div>
</script> Тоесть иными словами нужно, чтобы скрипт сначала определил, сколько символов в коде, затем проверил каждый символ, буква это или цифра, затем, в зависимости от результата подставил таблицу с содержимым. Если же в коде, допустим 9 символов, но он не прошёл проверку буква/цифра, то он должен написать Code <div>Не выполнено какое-то из условий</div> Мне подсказали, что яваскриптом будут меньше места занимать условия и можно более грамотно и удобно сделать.. Можете помочь? | | |
|
| cucYa | Отредактировал cucYa - Воскресенье, 31 Мая 2009, 20:28 Дата: 31 Мая 2009, 20:26 | Сообщение # 2 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | Code x = 'u.helper'; if(x.length==10){ if(x.charAt(0)==[0-9]){ if(x.charAt(1)==[0-9]){ if(x.charAt(9)==[0-9]){ document.write('<table><td>блаблабла</td></table>'); } } } } Не уверен с [0-9] | | |
|
| GenAdmin | Отредактировал GenAdmin - Воскресенье, 31 Мая 2009, 22:03 Дата: 31 Мая 2009, 22:02 | Сообщение # 3 |  ● ● ● ● ● 98 сообщений Статус: Offline | А разве так нельзя сделать Code x = 'u.helper'; if(x.length==10){ if(x.charAt(0-10)==[0-9]){ document.write('<table><td>блаблабла</td></table>'); } } | | |
|
| ShampooJJ | Дата: 31 Мая 2009, 23:18 | Сообщение # 4 | ● ● ● ● ● 33 сообщения Статус: Offline | Прошу прощения, вроде как всё ясно... мы говорим, что x - это у нас $КОД$, потом сокращённо проверяем длину x... А что означает [0-9] ?? И как дальше.. вот так?: Code x = 'u.helper'; if(x.length==8){ if(x.charAt(0)==[0-9]){ if(x.charAt(1)==[0-9]){ if(x.charAt(8)==[0-9]){ document.write('<table><td>блаблабла</td></table>'); } } } }
if(x.length==9){ if(x.charAt(0)==[0-9]){ if(x.charAt(1)==[0-9]){ if(x.charAt(9)==[0-9]){ document.write('<table><td>блаблабла</td></table>'); } } } }
if(x.length==10){ if(x.charAt(0)==[0-9]){ if(x.charAt(1)==[0-9]){ if(x.charAt(10)==[0-9]){ document.write('<table><td>блаблабла</td></table>'); } } } } А как потом, если какое-то из условий не сработало? Добавлено (31 Май 2009, 23:11) ---------------------------------------------
А разве так нельзя сделать Нет, мне нужно проверять КАЖДЫЙ символ.. Во как  Добавлено (31 Май 2009, 23:16) ---------------------------------------------
А, понял.. Типа если символ равен любой цифре от 0 до 9... cucYa, А почему не уверен-то? Добавлено (31 Май 2009, 23:18) --------------------------------------------- А может вместо [0-9] сделать >=0 ? | | |
|
| GenAdmin | Дата: 31 Мая 2009, 23:36 | Сообщение # 5 |  ● ● ● ● ● 98 сообщений Статус: Offline | Нет, мне нужно проверять КАЖДЫЙ символ.. Во как Сорь) Просто недопер суть вначале) А может вместо [0-9] сделать >=0 ? Смысл?  | | |
|
| ShampooJJ | Дата: 31 Мая 2009, 23:47 | Сообщение # 6 | ● ● ● ● ● 33 сообщения Статус: Offline | Да нет смысла.. Просто, уважаемый Сися сказал, что не уверен насчёт [0-9].. вот я и предположил возможный вариант... | | |
|
| GenAdmin | Дата: 01 Июня 2009, 00:01 | Сообщение # 7 |  ● ● ● ● ● 98 сообщений Статус: Offline | Работает хоть? =) | | |
|
| ShampooJJ | Дата: 01 Июня 2009, 00:08 | Сообщение # 8 | ● ● ● ● ● 33 сообщения Статус: Offline | да я не проверял ещё. просто мне, чтоб проверить, нужно всё перелопачивать. Лучше б сразу сейчас разобрать нормальный рабочий вариант и тогда посвящать полдня на его прописывание в глобальных блоках... | | |
|
| cuc | Дата: 01 Июня 2009, 01:16 | Сообщение # 9 | ● ● ● ● ● 2 сообщения Статус: Offline | Нет, это значит цифры, во всяком случаи в рег.выражениях так. Поэтому и не уверен. | | |
|
| GenAdmin | Дата: 01 Июня 2009, 01:19 | Сообщение # 10 |  ● ● ● ● ● 98 сообщений Статус: Offline | ребят учите математику, в жизни всего 10 однозначных цифр - 0 1 2 3 4 5 6 7 8 9 =)Добавлено (01 Июнь 2009, 01:19) --------------------------------------------- А нам нужно чтобы он определял, цифра ли это(В нашем случае однозначное число) - а любое однозначное число состоит из 1 элемента(0\1\2\3 и т.д. ИЛИ от 0 до 9 ИЛИ 0-9) =) | | |
|
| ShampooJJ | Дата: 01 Июня 2009, 01:53 | Сообщение # 11 | ● ● ● ● ● 33 сообщения Статус: Offline | А нам нужно чтобы он определял, цифра ли это(В нашем случае однозначное число) - а любое однозначное число состоит из 1 элемента(0\1\2\3 и т.д. ИЛИ от 0 до 9 ИЛИ 0-9) =) Ну вроде как это все давно поняли Просто нужно продолжить скрипт... как его писать дальше и как сделать, чтобы он выводил "<div>Не выполнено какое-то из условий</div>", если так оно и есть? Вобщем выше вопрос более чётко задан  | | |
|
| cucYa | Дата: 01 Июня 2009, 02:04 | Сообщение # 12 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | Строить ключь... Типа: Code key = 0;
if(lalala){ key = key + 1; }
if(key==1){ // lalala } Но лучше использовать array для этого. | | |
|
| Бармалей | Дата: 01 Июня 2009, 07:03 | Сообщение # 13 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Ну и что это за массив из одного элемента -9? Лучше Code /\d/.test(x.charAt(0))
 | | |
|
| }{0тт@бь)ч | Отредактировал }{0тт@бь)ч - Понедельник, 01 Июня 2009, 09:05 Дата: 01 Июня 2009, 09:02 | Сообщение # 14 | ● ● ● ● ● 1089 сообщений Статус: Offline | то if(первый символ это цифра), то if(второй символ это цифра).....if(десятый символ это цифра) =>, это однозначно число поэтому: Code <script type="text/javascript"> code = '1231231231' if((code.length<=10 && code.length>=8 && !isNaN(code))){document.write('Success!')} else{document.write('Fail')} </script> вот так. | | |
|
| ShampooJJ | Дата: 01 Июня 2009, 12:40 | Сообщение # 15 | ● ● ● ● ● 33 сообщения Статус: Offline | Мой мозг начал вытекать.... Что за !isNaN(code)? Не равно чему? И это.. if((code.length<=10 && code.length>=8 Нужно же так, чтобы условие длины распространялось не сразу на 8-9-10 символов, а по отдельности.. Тоесть, если уж код имеет длину 8 символов, то и пляшем дальше... А не если он больше 8 и меньше 10.. А это куда? Если это как-то поможет, то укозовскими операторами я делал так. всё проверка на буква/цифра работает отлично! Code <?if(substr($TITLE$,0,1)>0 or substr($TITLE$,0,1)='0')?> | | |
|
| Бармалей | Дата: 01 Июня 2009, 12:52 | Сообщение # 16 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | }{0тт@бь)ч, вот только 0xabcdef в таком случае тоже будет числом.
 | | |
|
| }{0тт@бь)ч | Дата: 01 Июня 2009, 13:41 | Сообщение # 17 | ● ● ● ● ● 1089 сообщений Статус: Offline | вот только 0xabcdef в таком случае тоже будет числом. так это ж и есть число  Добавлено (01 Июнь 2009, 13:39) ---------------------------------------------
ну переделай, там чуть совсемДобавлено (01 Июнь 2009, 13:41) --------------------------------------------- <script type="text/javascript"> code = '1231231231' if((!isNaN(code))){ if(code.length==10){...} else if(code.length==9){,,,} else if(code.length==8){'''} else{п*****ц} } else{document.write('Fail')} </script> не проверял. | | |
|
| ShampooJJ | Дата: 01 Июня 2009, 15:17 | Сообщение # 18 | ● ● ● ● ● 33 сообщения Статус: Offline | ну переделай, там чуть совсем Да, понял.. только вот что означает !isNaN(code) ? И я не вижу, как проверять каждый символ на буква/цифра? | | |
|
| }{0тт@бь)ч | Дата: 01 Июня 2009, 17:13 | Сообщение # 19 | ● ● ● ● ● 1089 сообщений Статус: Offline | | | |
|
| ShampooJJ | Дата: 01 Июня 2009, 18:42 | Сообщение # 20 | ● ● ● ● ● 33 сообщения Статус: Offline | Мега! Спасибо! Вот так нормально будет? Code <script type="text/javascript">
code = '$TITLE$'
if(code.length==7){ if((!isNaN(substr($TITLE$,0,2)))){ if((!isNaN(substr($TITLE$,2,2)))){ if((!isNaN(substr($TITLE$,4,2)))){ if((!isNaN(substr($TITLE$,6,1)))){ document.write('<table><td>блаблабла</td></table>') } } } } }else{
if(code.length==8){ if((!isNaN(substr($TITLE$,0,2)))){ if((!isNaN(substr($TITLE$,2,2)))){ if((!isNaN(substr($TITLE$,4,2)))){ if((!isNaN(substr($TITLE$,6,2)))){ document.write('<table><td>блаблабла</td></table>') } } } } }}else{
if(code.length==9){ if((!isNaN(substr($TITLE$,0,2)))){ if((!isNaN(substr($TITLE$,2,2)))){ if((!isNaN(substr($TITLE$,4,2)))){ if((!isNaN(substr($TITLE$,6,3)))){ document.write('<table><td>блаблабла</td></table>') } } } } }}else{
if(code.length==10){ if((!isNaN(substr($TITLE$,0,2)))){ if((!isNaN(substr($TITLE$,2,2)))){ if((!isNaN(substr($TITLE$,4,2)))){ if((!isNaN(substr($TITLE$,6,4)))){ document.write('<table><td>блаблабла</td></table>') } } } } }}else{document.write('<div>Не выполнено какое-то из условий</div>')}
</script> Добавлено (01 Июнь 2009, 18:42) --------------------------------------------- И как ещё сделать, чтобы он проверял, равняется-ли символ знаку тире или пробелу? Так? Code if(code.charAt(1)==[-]) || (code.charAt(1)==[ ]){....... Так? | | |
|