首页 > 解决方案 > Sesam DTL - 检查字符串是否由字母组成

问题描述

是否可以检查字符串中的字母?假设我在这里有这个实体:

[
    {
        _id: "1",
        "foo": "AD3495H2D23G"
    }
]

有没有办法确定 foo 是否由任何字母或特定字母组成。假设 D 和 H。如果它们存在,则过滤掉实体。

标签: sesam

解决方案


这可以使用此字符串转字符技巧来解决。

{
  "_id": "letter-filtering",
  "type": "pipe",
  "source": {
    "type": "embedded",
    "entities": [{
      "_id": "1",
      "foo": "AZ3495DX223G"
    }]
  },
  "transform": {
    "type": "dtl",
    "rules": {
      "default": [
          ["filter",
            ["not",
              ["intersects",
                ["list", "D", "H"],
                ["map",
                  ["substring", "_.",
                    ["plus", "_.", 1], "_S.foo"],
                  ["range", 0,
                    ["length", "_S.foo"]
                  ]
                ]
              ]
            ]
          ]
      ]
    }
  }
}

只要DH在 foo 道具中,这将过滤掉实体。


推荐阅读