我试图限制用户只输入数字。 也许我可以使用正则表达式来做到这一点,但我不知道确切的语法。 我不想要小数或特殊字符。
<Input type="Number"
value="{
type : 'sap.ui.model.type.Number',
constraints : {
minLength: 1,
maxLength: 15,
validate: ...
}
}" />
答案 0 :(得分:4)
sap.ui.model.type.Number不存在,但Integer和Float确实存在。
<Input
type="Number"
value="{
path: '/number',
type: 'sap.ui.model.type.Integer',
formatOptions: {
groupingEnabled: false,
groupingSeparator: ',',
decimalSeparator: '.'
},
constraints : {
minimum: '0',
maximum: '99'
}
}" />
我认为整数类型正是您所需要的。只有整数有效,默认情况下没有分组,小数或其他字符。如果输入了无效条目,您可以使用SAPUI5的error handling capabilities提醒用户。
如果要防止输入无效字符,可以使用屏蔽输入控件。 E.g:
<MaskInput
mask = "999999"
placeholderSymbol = "_"
placeholder = "Enter a six digit number"/>
但是,我个人觉得它们对于普通号码来说有点难看。掩码输入控件实际上是指遵循某种模式的输入值,例如信用卡号或邮政编码。
答案 1 :(得分:1)
<Input type="Number"
只接受数字,但是如果你仍然想要实现自己的验证,你可以按照下面的regex来做,只考虑数字:
定义regex
:
regex = /^[0-9]*$/;
将liveChange
添加到您的输入
liveChange: function(oEvent){
if(oEvent.getParameter("liveValue") === ""
|| !oEvent.getParameter("liveValue").match(regex)){
this.setValueState(sap.ui.core.ValueState.Error);
}
else{
this.setValueState(sap.ui.core.ValueState.Success);
}
}
答案 2 :(得分:0)
如果将输入类型限制为Number
,则不允许(特殊)字符输入到输入字段中。但是,允许使用与数字相关的字符(.,-
)。要摆脱它,您可以将属性绑定的数据类型设置为sap.ui.model.type.Integer
。您还可以设置minLength
,maxLength
等约束。如果用户在2.1
中键入,则将抛出验证错误,并且输入字段值状态将设置为Error。
<Input type="Number"
value="{
type : 'sap.ui.model.type.Integer',
constraints : {
minLength: 1,
maxLength: 15
}
}" />
Documentation of the Integer type.
Here is an other example for field validation with MessageManager