Итак, ниже приведена директива, которую я использую, чтобы убедиться, что ввод - это просто число от 0 до 9.
import { Directive, HostListener, ElementRef } from "@angular/core";
@Directive({
selector: "[numbersOnly]",
})
export class OnlynumberDirective {
constructor(private _el: ElementRef) {}
@HostListener("input", ["$event"]) onInputChange(event) {
const initalValue = this._el.nativeElement.value;
this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, "");
if (initalValue !== this._el.nativeElement.value) {
event.stopPropagation();
}
}
}
На данный момент он разрешает только числа (без специальных символов), поскольку он выполняет очистку данных и заменяет нечисловые символы c пустым пространством. Теперь я хочу изменить свое регулярное выражение, чтобы числа, содержащие ведущие нули, не допускались. Он может иметь нули, но не только в начале.
- 90123 -> Принято
- 100001 -> Принято
- 01223 -> Не принято
- 0 -> Не принято
Пожалуйста, предложите мне регулярное выражение, которое может работать с этим.