我看到了像这样的代码片段
// o is a string
var o = JSON.stringify({
"name": "my title",
"version": "0.0.2",
"description": "my desc",
"main": "index.js"}, null, 2)
o.split(/(,\n\s+)/)
.map(function (e, i) {
return i%2 ? '\n'+e.substring(4)+' ,' : e
})
.join('');
分裂函数中/(,\n\s+)/
做什么?
答案 0 :(得分:3)
/(,\n\s+)/
是一个与逗号匹配的正则表达式字面值,后跟换行符,后跟至少一个空格。
您可以在此处详细了解正则表达式:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
答案 1 :(得分:1)
看起来它试图拆分缩进的JSON片段以分离键值对。这种方法非常脆弱,因为它假定了片段的确切格式。如果存在例如,则它不起作用。在换行符之前的逗号之后的空格。在许多情况下,这不起作用。因此,除非在特定JSON格式保密的环境中使用,否则代码可能会被视为弱。
答案 2 :(得分:0)
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
捕获括号示例string.split([separator][, limit])
如果分隔符包含捕获括号,则在数组中返回匹配的结果。
var myString = "Hello 1 word. Sentence number 2.";
var splits = myString.split(/(\d)/);
console.log(splits);