Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определение пустого поля (https://javascript.ru/forum/misc/12813-opredelenie-pustogo-polya.html)

Александр-IV 04.11.2010 01:49

Определение пустого поля
 
Написал следующую программку :
alert(( (/([^(A-z)&&(А-я)])/ || prompt.length<1 ).test(prompt('Введите Ваше имя',''))) ? 'Ошибка' : 'Принято')
Вопрос, как именно в этой форме(без дальнейшего разбиения на блоки) поставить грамотно условие на определение незаполненного поля?


Вместо моего-неработающего варианта( prompt.length<1 ) - это я просто экспериментировал.

Gvozd 04.11.2010 02:19

отсыпьте что курите
что это за бессмысленный набор символов?

Tim 04.11.2010 08:31

/([^(A-z)&&(А-я)])/ || prompt.length<1 - это получается регулярное выражение?

|| prompt.length<1 - убрать и забыть, это к RegExp вообще ни как не относится

([^(A-z)&&(А-я)]) - это конечно тоже полная ерунда. Вообще, чтобы показать, что всей этой ерунды должно быть не менее одного символа используйте квантификатор "+", т.е. /([^(A-z)&&(А-я)])+/

(A-z) - вы думаете это все буковки от A до Z. А вот и неть. Во первых: какого тут разный регистр? Вроде так не делается. (A-Za-z) или (A-Z) или (a-z) - что то из этого должно быть мне кажется. Но это не важно, внутри символьного класса это всё равно не сработает.

[^] - исключающий символьный класс. Ему подоёдёт любой символ не стоящий внутри этого класса.

exec 04.11.2010 08:44

alert( (prompt("Введите значение") ? "" : "не") + " принято" );

Александр-IV 04.11.2010 12:17

Спасибо Tim,хотя именно на поставленный вопрос не ответили . Но, господа, не стоит так резко отзываться, я самостоятельно изучаю JS меньше недели, а здесь синтаксис достаточно труден.Gvozd, Вы даже не знаете с кем говорите, а уже опускаете человека.

Tim 05.11.2010 02:15

Александр-IV,
Не ответили для того, чтобы вы подумали немного, а то пишите "бессмысленные наборы символов".

Как известно метод prompt выводит окно с двумя кнопками и текстовым полем. Если пользователь нажал cancel то метод вернёт null. Если пользователь ни чего не ввёл и нажал ok, то метод вернёт пустую строку. Оба эти значения (пустая строка и null) в условном операторе трактуются как false, а значит мы можем написать вот так:

var txt = prompt("Введите значение");

if (txt) {
    alert("принято");
} else {
    alert("не принято");
}


Это то же самое что у exec, только без использования сокращённой записи оператора if

Gvozd 05.11.2010 03:08

Цитата:

Сообщение от Александр-IV
а здесь синтаксис достаточно труден

здесь C-подобный синтаксис.
если он для вас труден, то вы идиот, и вам следует остановится на языках не сложнее чем паскаль, или бейсик.
хотя наверно они также вам будут сложны.
Цитата:

Сообщение от Александр-IV
Gvozd, Вы даже не знаете с кем говорите, а уже опускаете человека.

что за переход на личности?
мне абсолютно все равно кто вы.
будь вы трижды британской королевой.
мне все равно, кто вы.
и я на тот момент никакого суждения о вас лично еще не высказывал.
хотя уже догадывался об идиотизме.

И откровенно говоря, мне завидно.
так как такого уровня идиотизма даже я еще не достигал.
Я слабо представляю как можно дойти в изучении "синтаксически сложного" языка до тернарного оператора, и при этом писать такой идиотский код, как будто вы не можете отличить объект от булевой переменной и от логического условия.


Часовой пояс GMT +3, время: 00:24.