Javascript在具有regex和object属性的嵌套对象中查找嵌套对象

Javascript在具有regex和object属性的嵌套对象中查找嵌套对象,javascript,regex,Javascript,Regex,我把一个字符串变成一个对象,然后在这个对象上循环。出于某种原因,如果字符串的格式是半正确的,并且我没有执行前两个步骤,即用花括号替换括号,那么效果很好 但是,替换项将“single”改为“single”,尽管它仍然解析无误。解析没有将第二个id放在employeeType下面,并错误地将其放在employee下面 实际产量: " id" " created" " employee" "- id" " firstname" " employeeType" "- id" " lastn

我把一个字符串变成一个对象,然后在这个对象上循环。出于某种原因,如果字符串的格式是半正确的,并且我没有执行前两个步骤,即用花括号替换括号,那么效果很好

但是,替换项将“single”改为“single”,尽管它仍然解析无误。解析没有将第二个id放在employeeType下面,并错误地将其放在employee下面

实际产量:

" id"

" created"

" employee"

"- id"

" firstname"

" employeeType"

"- id"

" lastname"

" location"
预期产量

" id"

" created"

" employee"

"- id"

"- firstname"

"- lastname"

"- employeeType"

"-- id"

" location"

要获得所需的输出,您需要修复objectOutput函数:

//如果改为{并删除前两行,则可以正常工作 var str=id,created,employeeid,firstname,employeeTypeid,lastname,location; str=str.replace/[]/g,{;//可能的问题行? str=str.replace/[]/g,};//可能的问题行? str=str.replace/[A-z]\s*{/g,$1\:{; str=str.replace/[A-z]\s*[},]/g,$1 \:空$2; str=str.replace/{/g,{\; str=str.replace/,/g,\; var objectStr=JSON.parsestr;//对象已创建,但错误 var objectOutput=functionobj,计数器{ 对于obj中的var i{ console.logArraycounter+1.join-+i; 如果对象拥有自己的财产i{ 如果obj[i]!=null{ objectOutputobj[i],计数器+1; } } } };
objectOutputobjectStr,0;我想我的第一个问题是,字符串应该如何格式化?为什么要使用字符串创建对象?//如果{取而代之,删除前两行-这是不可读的,你能展示一下什么是有效的吗?我添加了一个代码笔,它的所有代码都和这里一样,输出代码笔不是很有用。你的字符串实际上将如何格式化?你有没有一个例子?你为什么使用字符串?它来自哪里?@Organiccat…替代品将“single”改为…我不知道这意味着什么。替换的字符串中没有单引号…解析未将第二个id放在employeeType下,并错误地将其放在employee下…我也不知道您的意思。第二个id放在employee下。啊,所以在正则表达式转换中没有出现问题s重置计数器。我刚刚意识到我误读了我的对象,出于性能原因,codepen控制台没有显示第二个id?不知道。如果在JSON.parse之前抛出console.logstr,那么单个tic仍然很奇怪,但一切都可以解决。谢谢!@Organiccat是的,您的正则表达式工作正常,只要输入字符串不符合t包含意外字符。请在我的答案中选择与此相同的可选正则表达式。
" id"

" created"

" employee"

"- id"

"- firstname"

"- lastname"

"- employeeType"

"-- id"

" location"