Javascript 正则表达式:删除以下日期模式末尾的逗号
我得到了API的以下JSON:Javascript 正则表达式:删除以下日期模式末尾的逗号,javascript,regex,Javascript,Regex,我得到了API的以下JSON: { "things": [ { "id": 100, "bla": "blablablabla", "summary": "blablablabla", "date": "11/12/2016", }, { "id": 101, "bla": "blablablabla", "summary": "blablablabla", "date":
{
"things": [
{
"id": 100,
"bla": "blablablabla",
"summary": "blablablabla",
"date": "11/12/2016",
},
{
"id": 101,
"bla": "blablablabla",
"summary": "blablablabla",
"date": "02/05/2017",
},
{
"id": 102,
"bla": "blablablabla",
"summary": "blablablabla",
"date": "03/03/2017",
},
{
"id": 103,
"bla": "blablablabla",
"summary": "blablablabla",
"date": "12/04/2017",
}
]
}
正如您所看到的,这个json中有一个输入错误,因为日期后的逗号是一个错误,有办法在每个日期后删除这个逗号吗?您可以使用以下正则表达式:date:[0-9\/]* 我们搜索日期:,然后是从0-9或斜杠的任意数字的无限量,这将一直带到最终的引号。在模式中,我们包含此引号。从第一个引号到最后一个引号,都包含在括号中,因此这是一个组匹配,我们将其称为组1,然后验证它是否以逗号结尾,。一旦我们验证了这一点,我们将用组1替换整个选择,以便从字符串中删除逗号
您可以看到更详细的逐步演练。您可以使用以下正则表达式:date:[0-9\/]* 我们搜索日期:,然后是从0-9或斜杠的任意数字的无限量,这将一直带到最终的引号。在模式中,我们包含此引号。从第一个引号到最后一个引号,都包含在括号中,因此这是一个组匹配,我们将其称为组1,然后验证它是否以逗号结尾,。一旦我们验证了这一点,我们将用组1替换整个选择,以便从字符串中删除逗号
您可以看到更详细的逐步演练。将逗号字符替换为换行符,空格字符替换为}
替换逗号字符后跟换行符,空格字符后跟}
替换为$1是您使用的格式还是没有空格?您有权在服务器上更改它吗?没有,我没有访问服务器的权限。顺便说一句,您没有符合要求的字符串。也许您可以查看一下api,或者要求供应商提供一个标准字符串。替换为$1是您使用的格式还是没有空格?您有权在服务器上更改它吗?没有,我没有访问服务器的权限。顺便说一句,您没有符合要求的字符串。也许您可以查看api或要求供应商提供标准字符串。这是更好的答案,因为问题不在于日期对后出现逗号,而在于右大括号前出现逗号。@JonathanM我非常同意。我的大脑一开始并没有处理这种区别。\n已经是\s的一部分,所以可以简化为/,?=\s*}/g这是更好的答案,因为问题不在于日期对后出现逗号,而在于右大括号前出现逗号。@JonathanM我非常同意。我的大脑一开始并没有处理这种区别。\n已经是\s的一部分,所以可以简化为/,?=\s*}/g
preg_replace("/("date": "[0-9\/]*"),/", "$1", $json);
str.replace(/,(?=[\n\s]+})/g, "")