Здравствуйте, Михaил, Вы писали:
М>имхо должно быть достаточно убирать все не-alphanumeric characters для коротких ников.
М>Где-то регекс, который подсвечивает цитирование, трактует этот символ как конец строки цитирования, чем товарищ и воспользовался.
Предлагаю применить еще более радикальное решение вроде этого:
| JavaScript inside |
| function validateInput(inputString, inputName, minLength, maxLength, pattern) {
// Validates either username or password
let warningText = ''; // Empty string, otherwise it may be undefined !!!
if (inputString.length < minLength) {
warningText = inputName + ' may consist of at least ' + minLength + ' character(s)!'
}
if (inputString.length > maxLength) {
warningText = inputName + ' may consist of at most ' + maxLength + ' characters!';
}
const re = new RegExp(pattern);
if (!re.test(inputString)) {
// Modify displayed text as necessary.
warningText = inputName +
' may consist of Latin characters, digits, and underscores only.';
}
if (warningText === '') {
return true;
}
if (inputName === 'Username') {
username = '';
showUsernameWarning(warningText);
} else if (inputName === 'Password') {
password = '';
showPasswordWarning(warningText);
}
return false;
}
function validateUsername() {
return validateInput(username, 'Username', 1, 40, "^([A-Za-z0-9_]{1,40})$");
}
Используется здесь: http://todoplus2020.herokuapp.com/#/login |
| |
А то развлекаются, понимаете ли.