@zWaterFall

Как написать валидацию символов в строке?

Имеется вот такой объект, где ключами являются строки, которые надо валидировать
После применения написанного метода должно выводиться valid/invalid
Открытым скобкам должны сопоставляться закрытые и ковычки разбираются попарно

const inputs = {
  'erh43t26s5jemaslvjhgjfd': true, //valid
  'erh43"#tje#(maslg)fvjh"gjfd': true, //valid
  'erh43"tje(maslg"fvjh)gjfd': false, //invalid
  'erh43"tje(maslg"fvj"h)gj"fd': true, //valid !!!!!
  'erh4{3tjem[aslvv]jhg}jfd': true, //valid
  'e"r"h"{4(3dsad)tj324ema}"slv"jhg"jfd': true, //valid
  'e"r[h"{4(3dsad)tj324ema}"slv]jhg"jfd': true, //valid !!!!!
  'e"r["h"{4(3dsad)tj324ema}slv]jhg"jfd': true, //valid !!!!!
  'erh4\'3tj(er#y{ut#maslv)jh}\'gjfd': false, //invalid
  'erh4\'3tj(ery{utmas}lv)jh\'gjfd': true, //valid
  'erh4\'3\'tj(ery{utmas}lv)jh\'gjfd': false, //invalid !!!!!
  'erh4\'3\'tj(ery{utmas}lv)jh\'gjfd': false, //invalid !!!!!
  'erh4\'3\'"t"j(ery{utmas}lv)\'jh\'gjfd': true, //valid 
  'erh4\'3\'"tj(ery{utmas}lv)j"h\'gj\'fd': true, //valid
  'erh43#tjecmasy565lv#jhgjfd': true, //valid
}
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Для начала составить список парных символов - скобок и кавычек.
Далее посимвольно перебираете строку
Если встречается открывающий символ - заносите в стек.
Если встречаете закрывающий - проверяете, есть ли его пара на вершине стека. Если есть - удаляете открывающий из стека, Если нет - ошибка.
В конце строки проверяете, пуст ли стек. Если не пуст - остались незакрытые скобки или кавычки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы