• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript spel2js.SpelExpressionEvaluator类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中spel2js.SpelExpressionEvaluator的典型用法代码示例。如果您正苦于以下问题:TypeScript SpelExpressionEvaluator类的具体用法?TypeScript SpelExpressionEvaluator怎么用?TypeScript SpelExpressionEvaluator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了SpelExpressionEvaluator类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。

示例1: parseExpressions

  /**
   * Helper that parses given expression string using the configured parser. The
   * expression string can contain any number of expressions all contained in "${...}"
   * markers. For instance: "foo${expr0}bar${expr1}". The static pieces of text will
   * also be returned as Expressions that just return that static piece of text. As a
   * result, evaluating all returned expressions and concatenating the results produces
   * the complete evaluated string. Unwrapping is only done of the outermost delimiters
   * found, so the string 'hello ${foo${abc}}' would break into the pieces 'hello ' and
   * 'foo${abc}'. This means that expression languages that used ${..} as part of their
   * functionality are supported without any problem. The parsing is aware of the
   * structure of an embedded expression. It assumes that parentheses '(', square
   * brackets '[' and curly brackets '}' must be in pairs within the expression unless
   * they are within a string literal and a string literal starts and terminates with a
   * single quote '.
   * @param expressionString the expression string
   * @return the parsed expressions
   * @throws ParseException when the expressions cannot be parsed
   */
  public parseExpressions(expressionString: string): spel2js.SpelExpression[] {
    const expressions: spel2js.SpelExpression[] = [];
    const prefix = '${';
    const suffix = '}';

    let startIdx = 0;
    while (startIdx < expressionString.length) {
      const prefixIndex = expressionString.indexOf(prefix, startIdx);
      if (prefixIndex >= startIdx) {
        // an inner expression was found - this is a composite
        if (prefixIndex > startIdx) {
          expressions.push(literalExpression(expressionString.substring(startIdx, prefixIndex)));
        }

        const afterPrefixIndex = prefixIndex + prefix.length;
        const suffixIndex = this.skipToCorrectEndSuffix(suffix, expressionString, afterPrefixIndex);
        if (suffixIndex === -1) {
          throw new Error(
            "No ending suffix '" +
              suffix +
              "' for expression starting at character " +
              prefixIndex +
              ': ' +
              expressionString.substring(prefixIndex),
          );
        }

        if (suffixIndex === afterPrefixIndex) {
          throw new Error(
            "No expression defined within delimiter '" + prefix + suffix + "' at character " + prefixIndex,
          );
        }

        const expr = expressionString.substring(prefixIndex + prefix.length, suffixIndex).trim();

        if (!expr) {
          throw new Error(
            "No expression defined within delimiter '" + prefix + suffix + "' at character " + prefixIndex,
          );
        }

        expressions.push(spel2js.SpelExpressionEvaluator.compile(expr));
        startIdx = suffixIndex + suffix.length;
      } else {
        // no more ${expressions} found in string, add rest as static text
        expressions.push(literalExpression(expressionString.substring(startIdx)));
        startIdx = expressionString.length;
      }
    }

    return expressions;
  }
开发者ID:emjburns,项目名称:deck,代码行数:70,代码来源:spel2js.templateParser.ts


示例2:

const literalExpression = (literalString: string) =>
  spel2js.SpelExpressionEvaluator.compile(`'${literalString.replace(/'/g, "''")}'`);
开发者ID:robfletcher,项目名称:deck,代码行数:2,代码来源:spel2js.templateParser.ts



注:本文中的spel2js.SpelExpressionEvaluator类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript spica.Observable类代码示例发布时间:2022-05-25
下一篇:
TypeScript speedseed.core类代码示例发布时间:2022-05-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap