如何使用正则表达式删除字符串中的方括号?

IT技术 javascript regex
2021-02-26 11:40:53

['abc','xyz']– 这个字符串我想变成abc,xyz在 javascript 中使用正则表达式。我想用空字符串 ie 替换开闭方括号和单引号""

5个回答

使用此正则表达式匹配方括号或单引号:

/[\[\]']+/g

替换为空字符串。

console.log("['abc','xyz']".replace(/[\[\]']+/g,''));

它是为 javascript @adamrowe 编写的
2021-04-21 11:40:53
[...]regexp 中的@Zypps987用于定义一组要匹配的字符,它们是正则表达式“词汇表”的一部分。因此,如果要匹配[]字符,则需要对它们进行转义,以便将它们解释为简单字符。+意味着您不想只匹配这个集合一次,而是要匹配整个字符串。/[\[\]']+如果您想捕获每个[,]'字符则会导致结果
2021-05-05 11:40:53
介意解释一下这里工作的正则表达式吗?
2021-05-14 11:40:53
字符类中的第一个括号不必转义。(/[[\]]/g,'')正如@ithkuil 在下面建议的那样,需要它。
2021-05-17 11:40:53

str.replace(/[[\]]/g,'')

干得好

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

您可能甚至不需要字符串替换。如果您的原始字符串是 JSON,请尝试:

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

eval当然要小心

它不是 JSON,因为 JSON 对字符串使用双引号,而不是单引号。请参阅:json.org
2021-05-17 11:40:53

只是在这里提出一个我觉得更具可读性的替代方案。

/\[|\]/g

JavaScript 实现:

let reg = /\[|\]/g

str.replace(reg,'')

正如其他人所展示的,您所要做的就是列出[]字符,但由于它们是特殊字符,因此您必须使用\.

我个人认为使用的字符组定义[]令人困惑,因为它使用您要替换的相同特殊字符。

因此,使用|(OR) 运算符可以更轻松地将正则表达式中的特殊字符与被替换的文字字符区分开来。