[A-Za-z!$#%\d\u0100]{6}
соответствует aS1%eĀ
.
\u0100
для Ā.Вы можете вставить другие коды Unicode, которые вам нужны.Вы можете найти их здесь .
РЕДАКТИРОВАТЬ: для минимальных 6 символов правильное регулярное выражение равно [A-Za-z!$#%\d\u0100]{6,}
.
РЕДАКТИРОВАТЬ 2: включить диапазон символов Юникодаэто будет Latin Extended-B), регулярное выражение должно выглядеть как ^[A-Za-z!$#%\d\u0100-\u017f]{6,}$
.Вы можете найти диапазоны кодов Unicode здесь .
РЕДАКТИРОВАТЬ 3: я разработал крошечную функцию, которая проверяет, соответствует ли данный пароль критериям.Вам нужно определить диапазон Unicode в функции.
function isValidPassword(password) {
var unicodeRange = "\\u0100-\\u0105";
var criteria = ["A-Z","a-z","\\d","!$#%",unicodeRange];
// check whether it doesn't include other characters
var re = new RegExp("^[" + criteria.join("") +"]{6,}$");
if(!re.test(password)) return false;
var minSatisfiedCondition = 3;
var satisfiedCount = 0;
for( var i=0; i < criteria.length; i++) {
re = new RegExp("[" + criteria[i] + "]");
if(re.test(password)) ++satisfiedCount;
}
return (satisfiedCount >= minSatisfiedCondition);
}
Здесь есть рабочий образец .