Добавьте отсутствующие открывающие / закрывающие кавычки (исправлена ошибка пользователя)

#javascript

#язык JavaScript

Вопрос:

Я пытаюсь создать небольшую утилиту на javascript, которая может исправлять ошибки пользовательского ввода. Пользователь должен ввести строку в следующем формате:

пример: объект 1:»ключ1 ключ2″ объект 2:»ключ3 ключ4″ объект 2:»ключ5″ объект 2:»ключ6 ключ7″ Я пытаюсь создать логику, которая найдет отсутствующие кавычки (открывающие или закрывающие) на клавишах, в случае, если пользователь забыл добавить его.

возможным случаем ошибки может быть: объект 1:»ключ1 объект 2:»ключ2″, который следует исправить, добавив «закрытие» к объекту key1.

Я начинающий программист, и я не ищу готового решения, но полезные предложения, как я могу подойти к этому. Большое вам спасибо!

Комментарии:

1. Чтобы проверить, сбалансированы ли ваши котировки, вы можете прочитать раздел «сбалансированные скобки». О том, как исправить их автоматически, должно быть какое-то правило, которое следует применять при key завершении, иначе автоматическое исправление ошибки кажется довольно сложным.

2. Самым простым решением было бы поместить имена объектов и ключи в отдельные входные данные, тем самым снизив ответственность пользователей за правильную упаковку.

Ответ №1:

Если вас беспокоят только отсутствующие кавычки и то, что входная строка строго содержит только отсутствующие кавычки и соответствует вашему формату примера, один из подходов состоит в том, чтобы разделить входные данные в каждом символе двоеточия.

После этого вы можете просмотреть массив, начиная со второго элемента, и проверить, есть ли в начале каждой строки открывающие кавычки и являются ли символы перед именами объектов кавычками и пробелом. Если нет, добавьте открывающую/закрывающую кавычку.

После добавления необходимых кавычек вы можете просто соединить строку обратно.

Опять же, это если нет других возможных случаев/сценариев, которые необходимо проверить, в противном случае вам необходимо создать анализатор строк, который удовлетворяет всем возможным случаям.