首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环搜索要查找和替换文本的字段数组

使用for循环搜索要查找和替换文本的字段数组
EN

Stack Overflow用户
提问于 2021-03-05 03:24:00
回答 2查看 447关注 0票数 0

我使用Adobe (LiveCycle)创建了一个XFA表单,它使用了25个textfields。我正在尝试创建一个'Redact‘按钮,当按下该按钮时,将遍历这25个字段并在每个字段的字符串值中搜索名称。如果找到名称,则使用全局RegExp将名称替换为“*”,如果没有,则移到下一个字段。到目前为止,这是我想出来的,但不起作用。有人能帮忙吗?

代码语言:javascript
复制
var name = nameGlobal.value.toString();
 var regExp = new RegExp(name, "gi");
 var fields = [
  xfa.resolveNode("form1.#subform[3].#subform[4].N_Location.F1.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].N_Witnesses.Notes_2.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].F2.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_4.TextField7").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_5.TextField7").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_6.TextField9").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_7.N_7_2.TextField10").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_7.N_7_4.TextField11").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_7.N_7_6.TextField12").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_7.N_7_8.TextField13").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_7.F4.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F5.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F6.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F20.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.PupilSize.F7.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F8.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F9.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F10.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F11.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.#subform[20].TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_9.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Notes_10.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].F13.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].F14.TextField5").rawValue.toString(),
  xfa.resolveNode("form1.#subform[3].#subform[4].Msic_Notes.TextField5").rawValue.toString()
];

 for (i = 0; i < fields.length; i++) {
    if (fields[i] !== null) {
    fields[i] = fields[i].replace(name, "********");
     }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-05 03:40:59

替换不起作用的主要原因是toString()方法返回一个新字符串,而不是指向该值的指针。

您可以通过将节点引用而不是rawValue字符串来解决这个问题。

使用一些旧的javascript..。

代码语言:javascript
复制
var name = nameGlobal.value; // might need to add toString() back
var regExp = new RegExp(name, "gi");
var fields = [xfa.resolveNode("path_to_node")];
 
for (var i = 0; i < fields.length; i++) {
  var rawValue == fields[i];
  if (rawValue !== null) {
    fields[i].rawValue = rawValue.replace(regExp, "********");
  }
}

使用现代的javascript..。(不确定是否支持)

代码语言:javascript
复制
let name = nameGlobal.value; // might need to add toString() back
let regExp = new RegExp(name, "gi");
let fields = [ xfa.resolveNode("path_to_node")];
 
for (let field of fields) {
  let rawValue = field.rawValue
  if (!rawValue) { // might need to add the !== null
    field.rawValue = rawValue.replace(regExp, "********");
  }
}

我希望我能有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2021-03-05 05:24:24

所以我让它起作用了,我就是这么做的:

代码语言:javascript
复制
var replace = nameGlobal.value.toString();
var regExp = new RegExp(replace, "gi");
var fields = [
  "form1.#subform[3].#subform[4].N_Location.F1.TextField5",
  "form1.#subform[3].#subform[4].N_Witnesses.Notes_2.TextField5",
  "form1.#subform[3].#subform[4].F2.TextField5",
  "form1.#subform[3].#subform[4].Notes_4.TextField7",
  "form1.#subform[3].#subform[4].Notes_5.TextField7",
  "form1.#subform[3].#subform[4].Notes_6.TextField9",
  "form1.#subform[3].#subform[4].Notes_7.N_7_2.TextField10",
  "form1.#subform[3].#subform[4].Notes_7.N_7_4.TextField11",
  "form1.#subform[3].#subform[4].Notes_7.N_7_6.TextField12",
  "form1.#subform[3].#subform[4].Notes_7.N_7_8.TextField13",
  "form1.#subform[3].#subform[4].Notes_7.F4.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F5.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F6.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F20.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.PupilSize.F7.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F8.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F9.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F10.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.F11.TextField5",
  "form1.#subform[3].#subform[4].Notes_8.ClinicalNOtes.#subform[20].TextField5",
  "form1.#subform[3].#subform[4].Notes_9.TextField5",
  "form1.#subform[3].#subform[4].Notes_10.TextField5",
  "form1.#subform[3].#subform[4].F13.TextField5",
  "form1.#subform[3].#subform[4].F14.TextField5",
  "form1.#subform[3].#subform[4].Msic_Notes.TextField5",
  ];

for (i = 0; i < fields.length; i++) {
    var val = xfa.resolveNode(fields[i]).rawValue;
    if (val !== null) {
        if (val.search(regExp) !== -1) {
            xfa.resolveNode(fields[i]).rawValue = val.replace(regExp, "*******").toString();
      }
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66486319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档