Javascript 如何阻止用户在文本框中输入URL
我使用Angular 2,我想限制用户在文本框中输入URL和链接。Javascript 如何阻止用户在文本框中输入URL,javascript,angular,Javascript,Angular,我使用Angular 2,我想限制用户在文本框中输入URL和链接。 我们可以使用正则表达式吗?您可以使用指令监视文本框中的输入。该指令可以使用正则表达式检查当前输入是否为URL。这里有一个例子 import { Directive, HostListener, ElementRef } from '@angular/core'; @Directive({ selector: '[appUrlBlocker]' }) export class UrlBlockerDirective {
我们可以使用正则表达式吗?您可以使用指令监视文本框中的输入。该指令可以使用正则表达式检查当前输入是否为URL。这里有一个例子
import { Directive, HostListener, ElementRef } from '@angular/core';
@Directive({
selector: '[appUrlBlocker]'
})
export class UrlBlockerDirective {
constructor(private el: ElementRef) {}
expression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
regex = new RegExp(this.expression);
@HostListener('keyup') check() {
if (this.el.nativeElement.value.match(this.regex)) {
alert('You have entered a URL!');
// Remove entered content
this.el.nativeElement.value = '';
} else {
console.log('Does not match');
}
}
}
然后像这样在你的输入上使用它
<input appUrlBlocker type="text" placeholder="No URLs allowed" />
没有AngularJS 2来澄清@Aamirkan的评论-AngularJS指的是1.x版,AngularJS指的是2.x版及以上版本(是的,这是一个令人困惑的命名约定)。@Aamirkan是的,我使用的是angular 2.0版。您可以使用一个指令检查任何输入是否为URL。您可以使用正则表达式进行此操作。查看:@AamirKhan我使用了这个模式=“[-a-zA-Z0-9@:%.\+~\=]{2256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%.\+.\\+.~\?&/=]*),但它仍然接受所有的评论