Как разбить строку между "," с помощью регулярных выражений - PullRequest
1 голос
/ 02 марта 2020

Это моя строка:

('Vegetable', 'setswith', 'k', true)

Я хочу разделить это, как показано ниже

  • «Овощной»
  • «начинается с»
  • «к»
  • true

я пробовал как ниже, но не могу получите мое решение

https://regexr.com/4vfpg

1 Ответ

1 голос
/ 02 марта 2020

Вы можете сначала избавиться от первой открывающей скобки и последней закрывающей скобки, используя replace()

Шаблон /^\((.*?)\)$/ получает открывающую скобку в начале, а затем захватывает все до (но не включая ) последняя закрывающая скобка.

Теперь, когда строка эпюрирована, "('Vegetable', 'startswith', 'k', true)" становится "'Vegetable', 'startswith', 'k', true", вы можете использовать традиционный split():

console.log("('Vegetable', 'startswith', 'k', true)".replace(/^\((.*?)\)$/, "$1").split(', '));

Если вы хотите преобразовать части результата, содержащие "true" или "false", в логическое значение, вы можете map() результат:

console.log("('Vegetable', 'startswith', 'k', true, false)".replace(/^\((.*?)\)$/, "$1")
                                                           .split(', ')
                                                           .map(elem => elem === "true" ?
                                                                     true :
                                                                     elem === "false" ?
                                                                         false :
                                                                         elem));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...