按照 Jerry 这篇文章介绍的代码,运行之后,给类型为 sap.ui.model.type.Currency 的字段设置一个非 number 类型的值之后,触发该数据类型自带的数据校验机制,显示 Enter a number 的错误消息。

SAP UI5 应用开发教程之四十六 - 使用 Message Manager 实现开箱即用的验证(Validation)信息抛出

调试入口在 CompositeBinding.prototype.setExternalValue 函数内部。

if (this.oType) {pValues = SyncPromise.resolve().then(function() {var aCurrentValues;if (that.oType.getParseWithValues()) {aCurrentValues = that.getCurrentValues();}return that.oType.parseValue(oValue, that.sInternalType, aCurrentValues);

outputFormat 的具体实现是 NumberFormat

NumberFormat 是一个静态类,用于根据一组格式选项格式化和解析数值。

数据格式化是 SAPUI5 中的关键功能之一,它使应用程序能够根据用户区域设置显示数据。 为此,SAPUI5 使用通用区域设置数据存储库 (CLDR),这是一个提供特定区域设置模式的第三方库。 SAPUI5 使用这些模式来适应不同语言的约定。

数据格式化的一种用例是格式化和解析数字(包括货币信息)的能力。 对于这个特定的用例,CLDR 提供带有预配置货币信息的模式,例如一组不同货币的小数位数。 也可以通过添加新的自定义货币或重新配置现有货币来定义自定义货币。

其中匹配整形数值的正则表达式,维护在变量 sRegExpInt 内:^\s*([\+\+⁺₊➕﬩﹢+\-\-‐‒–⁻₋−➖﹣-]?[0-9,]+)\s*$

正则表达式验证失败:

因此抛出 ParserException 异常:

从 library resource bundle 里取得占位符 EnterNumber 的文本:Enter a number

关于 NumberFormat 更多的例子:

// "NumberFormat" required from module "sap/ui/core/format/NumberFormat"
var oCurrencyFormat = NumberFormat.getCurrencyInstance({currencyCode: false
});oCurrencyFormat.format(1234.567, "USD"); // returns $1,234.57
oCurrencyFormat.format(1234.567, "JPY"); // returns ¥1,235oCurrencyFormat.parse("$1,234.57"); // returns [1234.57, "USD"]
oCurrencyFormat.parse("¥1,235"); // returns [1235, "JPY"]

货币格式的以下格式选项可用:

  • currencyCode 定义当 showMeasure 设置为 true 时是否使用代码或符号。

  • trailingCurrencyCode 定义货币代码是否始终显示在金额之后,与区域设置无关。

  • currencyContext 定义了用于格式化货币编号的模式。 它可以设置为标准(默认)或会计。

SAP UI5 Currency 数据类型的校验逻辑分析相关推荐

  1. SAP UI5 Gateway后台ETAG校验逻辑

    Created by Jerry Wang, last modified on Jul 27, 2015 修改了lead的数据之后点击save button,首先从后台重新读取一次lead的数据: 将 ...

  2. SAP UI5 数据类型(data type) 学习笔记

    SAPUI5 中的数据类型用作验证用户输入的机制(例如,"hello"不是订单数量的可接受值),并确保数据在 UI 上被正确格式化和显示(例如将 1234567 显示为 1,234 ...

  3. SAP UI5 应用开发教程之四十六 - 使用 Message Manager 实现开箱即用的验证(Validation)信息抛出

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  4. SAP UI5 应用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输入字段的校验逻辑试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  5. SAP UI5 应用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输入字段的校验逻辑

    本教程的前一步骤:使用 Message Manager 实现开箱即用的验证(Validation)信息抛出,我们介绍了如何对绑定到 SAP UI5 标准的数据类型 sap.ui.model.type. ...

  6. SAP UI5 应用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  7. SAP UI5 初学者教程之十九 - SAP UI5 数据类型和复杂的数据绑定

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  8. SAP UI5 应用开发教程之十九 - SAP UI5 数据类型和复杂的数据绑定

    通过本教程前面的步骤SAP UI5 初学者教程之十七 - 聚合绑定在 UI5 复合控件中的使用的介绍,我们已经学会了如何在 SAP UI5 里显示列表,如下图所示: 本步骤我们给该列表添加更多的业务数 ...

  9. SAP UI5 应用 XML 视图的加载逻辑分析

    任务:分析 SAP UI5 root XML 视图的加载逻辑. 鼠标放到 initiator 这一列上,找到调用栈的 UIComponent.js 的 createContent 方法: 可以看到,这 ...

最新文章

  1. 你敢参与,我就敢送!牛转好运来,新春大抽奖
  2. Objective-C ,ios,iphone开发基础:NSDictionary(字典) 和 NSMutableDictionary
  3. 成功解决AttributeError: Parent variable ‘<Variable: ID (dtype = numeric)>‘ is not the index of entity En
  4. mysql主从数据库验证_数据库主从一致性验证
  5. (字节/华为/美团)前端面经记录冷冷清清的金三银四
  6. python程序化 k线指定时间更新_Python之路 14 K线时间序列管理器
  7. android 结束if循环_(第五讲)if 分支语句和 while 循环
  8. 分布式系统测试那些事儿——信心的毁灭与重建
  9. DIY制作otto机器人
  10. spark学习-JavaRDD注册成表然后用SparkSQL查询
  11. php面向对象开发技术 课本,PHP面向对象编程-高级技术书 - php
  12. Mentor.Graphics.DesignAnalyst 2005.1 1CD
  13. 参考文献引用格式实例
  14. 网站被攻击怎么办如何解决
  15. 细胞色素--训练13
  16. python根据经纬度画热力图_【python】使用python按照一定格式批量输出,地图热力图经纬度格式生成器...
  17. 视频剪辑软件调研分析-iMovie、Final Cut Pro、视频剪辑大师
  18. win10切换输入法快捷键_电脑小白必学的5个Win10技巧
  19. Vue项目使用富文本之tinymce-vue
  20. 计算机培训班价格多少钱?

热门文章

  1. java static 变量 初始化一次_关于java static变量初始化的疑问
  2. 全国计算机等级考试收费不一样,2018年北京全国计算机等级考试收费标准
  3. 中年失业都去做什么_2020年失业是种什么体验?这位吉他手去做了外卖小哥,演出时还穿着工作服...
  4. 2018“百度之星”程序设计大赛 - 复赛
  5. 常用Git指令常用git命令清单
  6. MapReduce的方式进行HBase向HDFS导入和导出
  7. AES-256 加密 PHP实现
  8. 每个[NET]开发人员现在应该下载的十种必备工具
  9. 【Asp.net】Cookie对象
  10. JavaSE知识点个人总结(不断更新)