Невозможно проверить, если пароль пуст - PullRequest
2 голосов
/ 05 июня 2019

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

const regexPasswd: RegExp = /((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{8,64})/;
    const inputPasswd = $(form).find("[name='passwd']");
    const passwd;
    let allOK = true;
    if (inputPasswd.val() !== undefined || inputPasswd.val() !== "" || inputPasswd.val() !== null) {
          if (this.regexPasswd.test(<string>inputPasswd.val())) passwd = inputPasswd.val();
          else {
            message += "Invalid Password<br>";
            allOK = false;
          }
        }

Я попробовал все три метода, которые я знаю, для проверки пустого ввода, но все еще не работает.Заранее благодарю за любую помощь.

Ответы [ 3 ]

2 голосов
/ 05 июня 2019

Используйте && (логическое И), а не || (логическое ИЛИ) в вашем условном выражении и кэшируйте значение:

let val = $.trim(inputPasswd.val()); 
if (val !== undefined && val !== "" && val !== null) {...}
1 голос
/ 05 июня 2019

Некоторые указали на вашу ошибку в отношении ||и &&

Однако я хочу отметить, что HTML обеспечивает более простое решение!

Прежде всего, вы можете добавить обязательный атрибут.В этом поле будет невозможно отправить форму без содержимого.

Во-вторых, вы можете использовать minlength для установки минимально необходимой длины.Однако, с 1 это немного избыточно, так как вам нужно для этого

Надеюсь, это поможет!

<label for="name">Name (4 to 8 characters):</label>

<form>
<input type="text" id="name" name="name" required
       minlength="1" maxlength="12" size="12">
       
<input type="submit" value="test">
0 голосов
/ 05 июня 2019

просто напишите

const regexPasswd: RegExp = /((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{8,64})/;
    const inputPasswd = $(form).find("[name='passwd']");
    const passwd;
    let allOK = true;
    if (!inputPasswd.val().length == 0 || inputPasswd.val() )  
    {
     // if value length is non-zero or non-undefined or non-null 

          if (this.regexPasswd.test(<string>inputPasswd.val())) passwd = inputPasswd.val();
          else {
            message += "Invalid Password<br>";
            allOK = false;
          }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...