使用ng-pattern的AngularJS验证可在桌面浏览器中使用,但不适用于移动设备

时间:2015-02-16 11:32:34

标签: javascript regex angularjs mobile

我编写了一个非常简单的正则表达式,以确保某些用户输入是带有单个空格的字母数字,如下所示:

        <input type="text" ng-minlength="5" ng-maxlength="8" ng-pattern="/^[0-9A-Z]*\s[0-9A-Z]*$/gi" required   placeholder="Postcode" ng-model="addr.postcode"  class="form-control" name="postcode" />
        <div class="col-xs-12" ng-messages="myform.postcode.$error" ng-if="myform.$submitted || myform.postcode.$dirty">
            <div class="text-warning" ng-message="minlength">Postcode is too short.</div>
            <div class="text-warning" ng-message="pattern">Must contain a space.</div>
            <div class="text-warning" ng-message="maxlength">Postcode is too long.</div>
        </div>

当我在桌面上用chrome测试它时,它会起到一种魅力。如果我的输入不包含空格,我会收到验证错误。输入空格时错误清除。例如&#34; AB12 3CD&#34;传球和&#34; AB123CD&#34;失败,这是我所期望的。

如果我在移动设备上打开同一页面(我已经使用iPhone 5&amp; 6和Windows Phone 8.1测试过),无论输入如何,该模式始终会失败。例如,&#34; AB12 3CD&#34;和&#34; AB123CD&#34;失败。

1 个答案:

答案 0 :(得分:0)

这是全球g选项。如果我将正则表达式更改为

ng-pattern="/^[0-9A-Z]*\s[0-9A-Z]*$/i"

适用于移动版和桌面版