Вы можете создавать массивы, содержащие RegExp
элементов, которые должны возвращать true
, и который должен вернуть false
, используйте Array.prototype.every()
, чтобы проверить, если строка содержит значение каждого
var str = `1aB$1234`;
var str1 = `1aB$,234`;
var str2 = `1aB$123 `;
// should match at least one of each `RegExp` in array
var matches = [/[a-z]{1}/, /[A-Z]{1}/, /[0-9]{1}/, /[!#$]{1}/];
// should not match any `RegExp` in array
var not = [/,/, /\s/]
var checkpw = (input) => matches.every(match => new RegExp(match).test(input))
&& not.every(n => !new RegExp(n).test(input))
&& input.length === 8;
console.log("\n","str:" + `${str}:` + checkpw(str) + "\n"
, "str1:" + `${str1}:` + checkpw(str1) + "\n"
, "str2:" + `${str2}:` + checkpw(str2));
Когда мы вводим этот текст Helloworld !, как пароль, он должен вызывать ошибку, так как он содержит запятую –
. Что вы думаете? –
Когда мы вводим этот текст Helloworld !, как пароль, он должен выкинуть ошибку, он содержит запятую –