Javascript 如何使用正则表达式删除字符串中的方括号?
Javascript 如何使用正则表达式删除字符串中的方括号?,javascript,regex,Javascript,Regex,['abc','xyz']–我想用javascript中的正则表达式将这个字符串转换成abc,xyz。我想用空字符串替换开闭方括号和单引号,即“”使用此正则表达式匹配方括号或单引号: /[\[\]']+/g 替换为空字符串 console.log(“['abc','xyz']”。替换(/[\[\]']+/g,”)str.replace(/[\]]/g',)您可能甚至不需要字符串替换。如果原始字符串是JSON,请尝试: js> a="['abc','xyz']" ['abc','xyz'
['abc','xyz']
–我想用javascript中的正则表达式将这个字符串转换成abc,xyz
。我想用空字符串替换开闭方括号和单引号,即“
”使用此正则表达式匹配方括号或单引号:
/[\[\]']+/g
替换为空字符串
console.log(“['abc','xyz']”。替换(/[\[\]']+/g,”)
str.replace(/[\]]/g',)
您可能甚至不需要字符串替换。如果原始字符串是JSON,请尝试:
js> a="['abc','xyz']"
['abc','xyz']
js> eval(a).join(",")
abc,xyz
当然要小心评估。给你
var str = "['abc',['def','ghi'],'jkl']";
//'[\'abc\',[\'def\',\'ghi\'],\'jkl\']'
str.replace(/[\[\]']/g,'' );
//'abc,def,ghi,jkl'
我只是在这里提出一个我认为更具可读性的替代方案
/\[|\]/g
JavaScript实现:
let reg=/\[\\]/g
str.replace(注册号“”)
正如其他人所展示的,您所要做的就是列出[
和]
字符,但由于它们是特殊字符,您必须使用\
对它们进行转义
我个人认为使用[]
的字符组定义令人困惑,因为它使用的是您试图替换的同一个特殊字符
因此,使用
|
(OR)运算符,您可以更容易地区分正则表达式中的特殊字符和被替换的文字字符。此字符串来自何处?这是JSON还是类似的东西?方括号可以嵌套吗<代码>['abc'、['def'、'ghi']、'jkl']如果是,结果应该是什么?这是JavaScript文本吗?您如何处理['ab'c','xy\\z']
?它不是JSON,因为JSON对字符串使用双引号,而不是单引号。请参阅:您是否介意在此处解释正则表达式?@zypsps987[…]
在regexp中用于定义一组要匹配的字符,它们是regexp“词汇表”的一部分。因此,如果要匹配[
和]
字符,则需要对它们进行转义,以便将它们解释为简单字符。+
表示您不希望只匹配此集合一次,而是要匹配整个字符串。如果要捕获每个[
、]
或'
字符,则会产生/[\[\]']+
。字符类中的第一个括号不必转义。只需要(/[\]]/g',)
,正如@ithkuil在下面建议的那样。