我正在尝试分割字符串的第二部分和第三部分。
以下是字符串内容:
var message = 'save ['content1', 'content2'] filename';
要对此进行区分,我正在使用:
const myarr = message.split(" ")[1];
const filename = message.split(" ")[2];
对于myarr
,我只得到['content
对于文件名,我得到的是整个数组。
我在这里做错了什么?
答案 0 :(得分:2)
使用正则表达式/(\[(.*?)\])/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 :(得分:1)
只需删除元素之间的数组内的空间
var message = 'save ["content1","content2"] filename';
const myarr = message.split(" ")[1];
const filename = message.split(" ")[2];
console.log(myarr)
console.log(filename)
答案 2 :(得分:1)
使用此正则表达式将字符串分为两部分:
var message = "save ['content1', 'content2'] filename";
var matches = message.match(/(\[[^\[\]]+?\])\s*(.+)$/);
const myarr = matches[1];
const filename = matches[2];