IE中的正则表达式和带有空格的chrome的不同行为

时间:2017-08-29 11:13:01

标签: javascript sapui5

我得到了以下函数来检查输入是什么:

validateInputFields: function() {
        var bValid = true;
        var oIDNumber = this.getView().byId("iDNumber");
        var regex = /^[0-9]+$/;

        if (oIDNumber.getValue().trim().length === 0 || (oIDNumber.getValue().match(regex) == null)) {
            bValid = false;
            oIDNumber.setValueState(sap.ui.core.ValueState.Error);
        } else {
            oIDNumber.setValueState(sap.ui.core.ValueState.Success);
        }
        return bValid;
    }

我只希望中间没有空格的数字才有效.....问题是如果我用chrome调用UI并且我输入空格没有任何反应我即使在该输入字段中也不能添加空格我复制一个带有空格的数字字符串并将其粘贴到它中Chrome只是忽略那些空格,而IE不会导致这种不一致的行为,一个人只是忽略了另一个接受它的空格但是通过这个检查,字段将被标记为"无效的条目" ......如何将此行为更改为类似的

2 个答案:

答案 0 :(得分:1)

因此,使用SAPUI5无法摆脱这种不一致。 API Reference中提到了以下内容:

  

内部输入标记的HTML类型(例如文本,数字,电子邮件,电话)。此属性的特定效果因浏览器和当前语言设置而异,特别是对于类型Number。

答案 1 :(得分:1)

  

我只想要[...]

之间没有空格的数字

使用sap.m.MaskInput,我们可以通过属性rules(或<MaskInput mask="99999"/>聚合)定义此类约束。看看这个示例"Numeric only",它也可以无缝地在IE上运行。在我们的例子中,"9"足以仅允许没有空格的数字。

注意: [0-9]是具有正则表达式{{1}}的{​​{3}}之一。

与sap.m.Input相比,MaskInput消除了浏览器之间的不一致,甚至还需要验证给定的输入。