Вы могли бы подумать, что об этом уже спрашивали, но я не могу его найти.
Мне нужно отделить строку js запятыми без кавычек.Я использую только двойные кавычки, так что это должно немного упростить.
Я пробовал два подхода, но не прибил его.
Мне нужно включить это:
'body.loaded"who, are , you" div"hello ,"#div-id span CODE, body.loaded span"span, text" code'
в это:
[
'body.loaded"who, are , you" div"hello ,"#div-id span CODE',
'body.loaded span"span, text" code'
]
1) -> сопоставить хорошие части, что в основном работает, но дает мне много пустых строк в моем результате.
'body.loaded"who, are , you" div"hello ,"#div-id span CODE, body.loaded span"span, text" code'.match(
/([^,]*"[^"]*")*/g
)
['body.loaded"who, are , you" div"hello' ,'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ' body.loaded span"span, text"', '', '', '', '', '', '']
Я думаю, что этоиз-за () в регулярном выражении.
2) разделить плохие части, которые еще не совсем там.Идея здесь состоит в том, чтобы сопоставлять запятые, за которыми следует четное число ".
'body.loaded"who, are , you" div"hello ,"#div-id span CODE, body.loaded span"span, text" code'.split(
/,(?![^"]*"[^"]*("[^"]*"[^"]*)*$)/
);
По сути, должно быть более простое и красивое решение (имейте в виду, что JavaScript не поддерживает взгляды сзади).1021 *