【发布时间】:2015-05-21 00:40:07
【问题描述】:
我正在使用 Node 服务器,我使用 pdftk 从 PDF 中提取字段数据以注入表单数据。
我正在尝试获取字段名称的 JSON 对象以进行迭代,但我似乎无法正确处理。 它可能需要一个循环,因为它会根据 PDF 中的字段而改变。
这是我从输出中得到的字符串。
---
FieldType: Text
FieldName: topmostSubform[0].Page1[0].p1-t17[0]
FieldFlags: 8388608
FieldValue:
FieldJustification: Center
FieldMaxLength: 10
---
FieldType: Text
FieldName: topmostSubform[0].Page1[0].p1-t20[0]
FieldFlags: 8388608
FieldValue:
FieldJustification: Center
FieldMaxLength: 10
---
FieldType: Button
FieldName: topmostSubform[0].Page1[0].p1-cb7[0]
FieldFlags: 0
FieldValue:
FieldJustification: Left
FieldStateOption: 1
FieldStateOption: Off
---
FieldType: Text
FieldName: topmostSubform[0].Page1[0].p1-t38[0]
FieldFlags: 8388608
FieldValue:
FieldJustification: Center
---
FieldType: Text
FieldName: topmostSubform[0].Page1[0].p1-t50[0]
FieldFlags: 8388608
FieldValue:
FieldJustification: Left
你会推荐正则表达式吗?解决这个问题的最佳方法是什么?
【问题讨论】:
-
先在
\n---\n上拆分,得到一个字段字符串数组。然后拆分\n上的每一个以获取属性字符串数组。然后将:上的内容拆分为property和value。 -
如果你可以使用 ES6,你可以试试
JSON.parse('['+yourStringHere.split('\n---\n').map(a=>'{'+a.replace(/(.*?)\: ?(.*)/g,'"$1":"$2"').replace(/\n/g,',')+'}').join(',')+']')。然后您需要将一些数字解析为数字……但我想您需要对其进行优化,以便区分字符串和代码(例如Center与topmostSubform[0].Page1[0].p1-t50[0])。
标签: javascript json pdftk