这个JSON数据正在动态插入到我正在处理的模板中.我正在尝试从对象列表中删除尾随逗号.
我正在使用的CMS使用Velocity,我还不太熟悉.所以我希望编写一段JavaScript代码来检测最后一个对象(ITEM2)上的尾随逗号并将其删除.是否有一个REGEX,我可以用来检测任何逗号之前的逗号?
[ { "ITEM1":{ "names":[ "nameA" ] } }, { "ITEM2":{ "names":[ "nameB", "nameC" ] } }, // need to remove this comma! ]
Dmitry Parzh.. 17
你需要找到,
,之后没有任何新的属性,对象或数组.
新属性可以使用引号("
或'
)或任何单词字符(\w
)开头.
新对象只能从字符开始{
.
新数组只能从字符开始[
.
新属性,对象或数组可以放在一堆类似空格的符号(\s
)之后.
所以,正则表达式将是这样的:
let regex = /\,(?!\s*?[\{\[\"\'\w])/g;
像这样使用它:
// javascript let input; // this is the initial string of data let correct = input.replace(regex, ''); // remove all trailing commas let data = JSON.parse(correct); // build a new JSON object based on correct string
试试第一个正则表达式.
另一种方法是找到每一个,
,之后有一个结束括号.
在这种情况下,结束括号是}
和]
.
同样,关闭括号可能放在一堆类似空格的符号(\s
)之后.
因此正则表达式:
let regex = /\,(?=\s*?[\}\]])/g;
用法是一样的.
试试第二个正则表达式.
你需要找到,
,之后没有任何新的属性,对象或数组.
新属性可以使用引号("
或'
)或任何单词字符(\w
)开头.
新对象只能从字符开始{
.
新数组只能从字符开始[
.
新属性,对象或数组可以放在一堆类似空格的符号(\s
)之后.
所以,正则表达式将是这样的:
let regex = /\,(?!\s*?[\{\[\"\'\w])/g;
像这样使用它:
// javascript let input; // this is the initial string of data let correct = input.replace(regex, ''); // remove all trailing commas let data = JSON.parse(correct); // build a new JSON object based on correct string
试试第一个正则表达式.
另一种方法是找到每一个,
,之后有一个结束括号.
在这种情况下,结束括号是}
和]
.
同样,关闭括号可能放在一堆类似空格的符号(\s
)之后.
因此正则表达式:
let regex = /\,(?=\s*?[\}\]])/g;
用法是一样的.
试试第二个正则表达式.