2010-09-28 2 views
22

['abc','xyz'] - эта строка, которую я хочу включить в abc,xyz, с использованием регулярного выражения в javascript. Я хочу заменить открытую закрытую квадратную скобку & одинарной кавычкой с пустой строкой, то есть "".Как удалить квадратные скобки в строке с помощью регулярных выражений?

+0

Где эта строка берется? Это JSON или что-то подобное? – Gumbo

+0

Могут ли квадратные скобки быть вложенными? '['abc', ['def', 'ghi'], 'jkl']' Если да, каков должен быть результат? –

+1

Является ли это литералом JavaScript? Что вы делаете с '['ab \' c ',' xy \\ z ']'? – bobince

ответ

44

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

/[\[\]']+/g 

Замените пустую строку.

"['abc','xyz']".replace(/[\[\]']+/g,'') 
+0

Спасибо, что работает – Mugdha

+0

ум объясняет регулярные выражения на работе здесь? – Zypps987

+0

@ Zypps987 '[...]' в regexp используется для определения набора символов для соответствия, они являются частью словаря regexp. Следовательно, если вы хотите совместить символы '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' «+» Означает, что вы не хотите, чтобы этот набор был установлен только один раз, но для всей строки. Это приводит к '/ [\ [\] '] +', если вы хотите поймать все символы '', '' '' или '' '. – Carrm

4

Вы, наверное, не нужно даже строки замены для этого. Если исходная строка JSON, попробуйте:

js> a="['abc','xyz']" 
['abc','xyz'] 
js> eval(a).join(",") 
abc,xyz 

Будьте осторожны с eval, конечно.

+0

Это не JSON, потому что JSON использует двойные кавычки для строк, а не одинарные кавычки. См .: http://www.json.org/ –

+1

О, правда. Но он все еще работает. :) –

6

здесь вы идете

var str = "['abc',['def','ghi'],'jkl']"; 
//'[\'abc\',[\'def\',\'ghi\'],\'jkl\']' 
str.replace(/[\[\]']/g,''); 
//'abc,def,ghi,jkl'