gpt4 book ai didi

javascript - 如何在 Angular 8 中将空格限制为第一个字符并在字符后允许空格

转载 作者:行者123 更新时间:2023-12-02 22:13:02 27 4
gpt4 key购买 nike

我尝试将特殊字符和空格限制为第一个字符,但我能够限制特殊字符,但无法将空格限制为第一个字符。我用过定制管道。还附上了工作演示。所以现在,输入字段中的特殊字符已受到限制,因此我必须将空格限制为第一个字符,并在字母数字后允许空格。

HTML:

 <input type="text" class="form-control min-w300" placeholder="Search Agent" [(ngModel)]="wildCardSearch" (ngModelChange)="searchChange($event)" appInputRestriction>

T:我将选择器作为 appInputRestrictor 并且像这样使用它。

 regexStr = '^[a-zA-Z0-9_]*$';
@Input() isAlphaNumeric: boolean;

constructor(private el: ElementRef) { }


@HostListener('keypress', ['$event']) onKeyPress(event) {
return new RegExp(this.regexStr).test(event.key);
}

validateFields(event) {
setTimeout(() => {

this.el.nativeElement.value = this.el.nativeElement.value.replace(/[^A-Za-z ]/g, '').replace(/\s/g, '');
event.preventDefault();

}, 100)
}

Demo

最佳答案

您正在寻找的解决方案称为this.el.nativeElement.selectionStart

这是适合您的代码库。

@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {

if ( this.el.nativeElement.selectionStart === 0 && event.key === ' ' ) {
event.preventDefault();
}

if (!RegExp(this.regexStr).test(event.key)) {
event.preventDefault();
}
}

我还为此创建了演示。请检查一下:

https://stackblitz.com/edit/angular-iws9ns

关于javascript - 如何在 Angular 8 中将空格限制为第一个字符并在字符后允许空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497271/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com