2014-03-31 2 views
0

Я получил этоНе удалось разделить эту строку с регулярным выражением правильно

'','','{12345678},{87654321}','lk12l1k2l12lkl12lkl121l2lk12'

пытается сопоставить его с помощью '(.*?)',|'(.*?)'

Он успешно получил свои 4 порции

'' 
'' 
'{12345678},{87654321}' 
'lk12l1k2l12lkl12lkl121l2lk12' 

Но я пытаясь использовать одно и то же регулярное выражение в split ... ему это не нравится. :(

var str = "'','','{12345678},{87654321}','lk12l1k2l12lkl12lkl121l2lk12'"; 
str.split(/'(.*?)',|'(.*?)'/); 

Любая идея? ... тьфу.

+0

Так CSV парсер? –

+1

Что значит «не нравится»? – Smeegs

+0

Он разбит неправильно, вместо 4 получает 12, в основном он рассматривает '' 'как 1, а также', 'как 1. – codenamezero

ответ

1

Почему вы используете split?

Вы можете получить четыре порции с match:

var chunks = str.match(/'[^']*'/g); 
+0

Спасибо, мастер, можно ли удалить одиночные кавычки, используя совпадение в одно и то же время? – codenamezero

+0

Для IE> 8: 'str.match (/ '[^'] * '/ g) .map (function (v) {return v.slice (1, -1)})' – friedi

0

ли тест split() необходимых?

Вы всегда можете получить информацию между кавычками с использованием match().

test.match(/'(.*?)'/g) 

пожалуйста, обращайтесь.

+0

Нет, попробовал что-то подобное до того, как я опубликую, ваше решение испортится с внутренней запятой. – codenamezero

+0

Я изменил свой ответ. Пожалуйста, проверьте это и дайте мне знать. – SparoHawk

Смежные вопросы