Вот подход трюка с регулярными выражениями. Мы можем попытаться удалить все символы из ввода, которые не часть класса символов для поиска. Затем подтвердите, что на входе осталось как минимум два различных символа.
var input = "!hello?";
input = input.replace(/[^!?]+/g, "");
if (/(.).*(?!\1)./.test(input)) {
console.log("MATCH");
}
else {
console.log("NO MATCH");
}
Логика здесь довольно проста. Используя в качестве примера входные данные !hello?
, мы сначала удаляем все не маркерные символы, оставляя нам !?
. Затем мы используем регулярное выражение, чтобы утверждать, что осталось не менее двух различных символов. Это верно для этого ввода, поэтому мы печатаем MATCH
.
Редактировать:
Чтобы построить чередование регулярных выражений из вашего входного массива, используйте join
:
const array = ["!", "?"];
var regex = "[^" + array.join("") + "]+";