根据Jerry文章介绍的代码,运行后,为sap.ui.model.type.Currency类型的字段设置一个非数值,触发内置的-在数据类型的数据校验机制中显示Enteranumber的错误信息。SAPUI5应用开发教程之第四十六篇——使用消息管理器实现开箱即用的验证(Validation)信息抛出调试入口在CompositeBinding.prototype.setExternalValue函数里面。if(this.oType){pValues=SyncPromise.resolve().then(function(){varaCurrentValues;if(that.oType.getParseWithValues()){aCurrentValues=that.getCurrentValues();}返回那个.oType.parseValue(oValue,that.sInternalType,aCurrentValues);outputFormat的具体实现是NumberFormat:NumberFormat是一个静态类,用于根据一组格式选项对数值进行格式化和解析。数据格式化是其中的一种SAPUI5中的关键函数,它使应用程序能够根据用户区域设置显示数据。为此,SAPUI5使用通用区域设置数据存储库(CLDR),这是一个提供特定区域设置模式的第三方库。SAPUI5使用这些数据格式的一个用例是格式化和解析数字(包括货币信息)的能力。对于这个特定的用例,CLDR提供了一个带有预配置货币信息的模式,例如一组小数不同货币的地方。也可以通过添加新的自定义货币或重新配置现有货币来定义自定义货币来访问它。变量sRegExpInt中维护了匹配整数值的正则表达式:^\s*([\+\+????﹢+\-\-‐‐–????﹣-]?[0-9,]+)\s*$正则表达式验证失败:因此抛出ParserException:从库资源包中获取占位符EnterNumber的文本:输入数字:有关NumberFormat的更多示例://模块需要“NumberFormat”"sap/ui/core/format/NumberFormat"varoCurrencyFormat=NumberFormat.getCurrencyInstance({currencyCode:false});oCurrencyFormat.format(1234.567,"USD");//返回$1,234.57oCurrencyFormat.format(1234.567,"JPY");//返回¥1,235oCurrencyFormat.parse("$1,234.57");//返回[1234.57,"USD"]oCurrencyFormat.parse("¥1,235");//以货币格式返回[1235,"JPY"]以下格式选项可用:currencyCode定义当showMeasure设置为true时是使用代码还是符号。trailingCurrencyCode定义货币代码是否始终显示在金额之后,无论区域设置如何。currencyContext定义格式化货币数字的模式。它可以设置为标准(默认)或会计。
