Angularjs допускает одно десятичное число после

   <input type="number"
                           name="content"
                           md-auto-focus


                           ng-model="vm.model.content"
                           ng-required="{{vm.required === null ? true : vm.required}}"
                           ng-attr-ng-max="{{vm.max}}"
                           ng-attr-ng-min="{{vm.min}}">    <div ng-message-exp="['required','min']" ng-if="vm.min != null">
                            <span data-translate
                                  translate-value-length="{{vm.min}}">min</span>
                            </div>
                            <div ng-message="required" ng-if="vm.min == null">
                                <span data-translate>required</span>
                            </div>
                            <div ng-message="number">
                                <span data-translate>numberOnly</span>
                            </div>
                            <div ng-message="max">
                            <span data-translate
                                  translate-value-length="{{vm.max}}">max</span>
                            </div>

                    </div>

это короткая версия моего кода.

как вы можете видеть здесь,

https://regex101.com/r/fvPBTW/1 я использую то же регулярное выражение.

Он принимает 44,44, 44,

но не 44. , 44.444, 44.44.44, 44.44.

Я думаю из-за особенностей номера.

Но я хочу, чтобы было введено только число и одно десятичное число с числом после него.

Что я могу сделать?


person vegan    schedule 09.06.2017    source источник


Ответы (1)


Попробуй это :

<input type="number" name="content" md-auto-focus ng-pattern=/^[0-9]+(\.[0-9]{1})?$/>

Это примет только 4 , 44 , 4.1 , 4.2 , 444.2

Но не 4, 4,23, 4,444, 444,23,

person Vivek Doshi    schedule 09.06.2017
comment
Нет, не делал. Потому что 4. , 4.23 , 4.444 , 444.23 принимаются type=number Вы удалили только 1,2 и заставили его принимать только одно число после запятой. Это ничего не изменило. - person vegan; 09.06.2017
comment
Да, но у вас есть проверка через ng-pattern=/^[0-9]+(\.[0-9]{1})?$/, так что это не имеет значения, в вашем случае это может быть проверка по умолчанию HTML5, пожалуйста, проверьте это. - person Vivek Doshi; 09.06.2017
comment
как я могу это сделать - person vegan; 09.06.2017
comment
@vegan Что не соответствует вашим потребностям в его ответе? На мой взгляд, он точно выполняет свою работу. - person Mistalis; 09.06.2017
comment
Я хочу, чтобы вводились только цифры. но показать сообщение об ошибке для 4., 4.23, 4.444, 444.23, 44.44., 44.44.44. - person vegan; 09.06.2017