Я сделаю это коротко и просто. Я делаю чат-основанную игру JavaScript. У меня есть массив, называемый классами:
const classes = ["brute", "medic", "ranger"];
А во-вторых, у меня есть оператор if:
if (classes.includes(target)) {
this.sendReply('Successful.');
} else {
this.errorReply('"' + target + '"' + ' is not a valid class.');
}
Таким образом, в основном, что он должен делать, является то, что если "target" (который является именем класса, в который игрок вводит), тип в медике, грубом или рейнджере, как класс, он вернет "Успешный".
Теперь это работает, но проблема в том, что он чувствителен к регистру. Например, если я вхожу в "медик", он вернет "Успешный", но если я наберу "Медик", он вернется "Медик не является допустимым классом".
Как удалить эту чувствительность к регистру? Я бы предпочел не добавлять к массиву "медик", "медик", "рейнджер", "рейнджер" и т.д. Спасибо!
Перед проверкой поверните строку в нижнем регистре, например:
classes.includes(target.toLowerCase())
Прежде чем передать строку в оператор if, используйте метод toLowerCase
.
if (classes.includes(target.toLowerCase())) {
this.sendReply('Successful.');
} else {
this.errorReply('"' + target + '"' + ' is not a valid class.');
}
Или же
target = target.toLowerCase();
if (classes.includes(target)) {
this.sendReply('Successful.');
} else {
this.errorReply('"' + target + '"' + ' is not a valid class.');
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase
Преобразуйте строку в нижний регистр перед проверкой
Вы можете использовать регулярное выражение с флагом i, чтобы игнорировать регистр.