-4

我看到了这样的代码片段

// 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+)/拆分功能在做什么?

4

3 回答 3

3

/(,\n\s+)/是匹配逗号的正则表达式文字,后跟换行符,后跟至少一个空格。

您可以在此处阅读有关正则表达式的更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

于 2013-08-30T14:50:17.070 回答
1

看起来它试图拆分缩进的 JSON 片段以分离键值对。这种方法非常脆弱,因为它假定了片段的精确格式。如果在换行符之前的逗号后有空格,则它不起作用。在很多情况下这不起作用。因此,除非在保证这种特定 JSON 格式的环境中使用它,否则代码可能被认为是弱的。

于 2013-08-31T10:11:30.127 回答
0

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split 捕获括号示例string.split([separator][, limit])

如果 separator 包含捕获括号,则在数组中返回匹配的结果。

var myString = "Hello 1 word. Sentence number 2.";
var splits = myString.split(/(\d)/);

console.log(splits);
于 2013-08-30T15:23:36.903 回答