Как написать регулярное выражение в сценарии типа, чтобы принять значение от 0 до 1000 - PullRequest
0 голосов
/ 05 сентября 2018

Html

<form novalidate #f="ngForm" (ngSubmit)="sendRestItems()">
    <input placeholder="Give point out of 1000  " type="text" class="form-control" 
        name="scores" [(ngModel)]="model.scores" #scores="ngModel"
        max="1000" pattern="^([0-9]{0,3}|1000)" required>
    <button type="submit" [disabled]="scores.errors || !disabled" class="buttons">Submit</button>
    <div class="form-control-feedback" *ngIf="scores.errors && (scores.dirty || scores.touched)">
        <p *ngIf="scores.errors.pattern" [ngStyle]="{'color':'red'}">score value must be between 0 to 1000</p>
        <span [ngStyle]="{'color':coloring}">{{status}}</span>
    </div>
</form>

Я использовал угловую форму для создания поля ввода, которое будет принимать значение от 0 до 1000, для проверки этого условия я написал regex как ^ ([0-9] {0,3} | 1000 ), но это дает недопустимое значение для 0200,0100 и т. д. Как решить эту проблему, пожалуйста, помогите мне?

Stackbliz_Url

Ответы [ 4 ]

0 голосов
/ 05 сентября 2018

Попробуйте это регулярное выражение: ^(100|[1-9]?[0-9])$

Вы также можете обратиться к здесь для получения более подробной информации

0 голосов
/ 05 сентября 2018

Регулярные выражения для этого не нужны. Используйте input type="number" вместо:

<form novalidate #f="ngForm" (ngSubmit)="sendRestItems()">
    <input placeholder="Give point out of 1000  " type="number" class="form-control" 
        name="scores" [(ngModel)]="model.scores" #scores="ngModel"
        max="1000" min="0" required>
    <button type="submit" [disabled]="scores.errors || !disabled" class="buttons">Submit</button>
    <div class="form-control-feedback" *ngIf="scores.errors && (scores.dirty || scores.touched)">
        <p *ngIf="scores.errors.pattern" [ngStyle]="{'color':'red'}">score value must be between 0 to 1000</p>
        <span [ngStyle]="{'color':coloring}">{{status}}</span>
    </div>
</form>

Angular это тоже понимает.

0 голосов
/ 05 сентября 2018

^(1000|0?\d{1,3})$

Это выражение будет разрешать от 1 до 4 цифр в любое время, пока число меньше 1000, и можно включать начальные нули.

Будет соответствовать: 0, 0000, 010, 0010, 100, 0100, 1000

Не будет соответствовать: 01000, 1001, 2000

Попробуйте здесь

0 голосов
/ 05 сентября 2018

Попробуйте следующее регулярное выражение:

^([0-9]|[1-9][0-9]|1000)$

// [0-9] For single digit Number
// [1-9][0-9] For double digit Number
// 1000 final Limit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...