Проблемы с разделением строки на разные переменные

#javascript

#javascript

Вопрос:

Я пытаюсь разделить 2-ю и 3-ю части строки.

Вот содержимое строки:

 var message = 'save ['content1', 'content2'] filename';
  

Чтобы разделить это, я использую:

 const myarr = message.split(" ")[1];

const filename = message.split(" ")[2];
  

Для myarr я получаю просто ['content

и для имени файла я получаю фактически весь массив.

Что я здесь делаю не так?

Ответ №1:

Что делать с регулярным выражением /([(.*?)])/g

https://regex101.com/r/i2Rhni/2/

Обновлено

Для имени файла используйте split вместо match.И используйте trim() удаление нежелательного пустого пространства

 var message = "save ['content1', 'content2'] filename";
str =message.split(/([(.*?)])/g).map(a=> a.trim());
console.log(str[1])

//parse string to array using eval
console.log(eval(str[1]))
console.log(str.pop())  

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

1. Что насчет имени файла?

Ответ №2:

Используйте это регулярное выражение для разделения строки на две части:

 var message = "save ['content1', 'content2'] filename";
var matches = message.match(/([[^[]] ?])s*(. )$/);
const myarr = matches[1];
const filename = matches[2];
  

Ответ №3:

Просто удалите пробел внутри массива между элементами

 var message = 'save ["content1","content2"] filename';

const myarr = message.split(" ")[1];

const filename = message.split(" ")[2];
console.log(myarr)
console.log(filename)  

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

1. Пожалуйста, обратите внимание на space между "content1", и "content2"