2017-11-15 10 views
1

私は角度2を使用しています。ユーザーがテキストボックスにURLとリンクを入力しないように制限します。 これに正規表現を使用できますか?ユーザーがURLをテキストボックスに入力するのをブロックする方法

+0

アーミル・カーンさんのコメント@明確にするために、角JS 2 –

+1

のようなものはありませんように、あなたの入力にそれを使用 - AngularJSは、バージョンを参照します1.x、Angularはバージョン2.x以上を示します(はい、混乱する命名規則です)。 –

+0

@AamirKhanはい角型バージョン2.0を使用しています –

答えて

0

ディレクティブを使用して、テキストボックスの入力を監視できます。このディレクティブは、正規表現を使用して、現在の入力がURLかどうかを調べることができます。ここでは例

import { Directive, HostListener, ElementRef } from '@angular/core'; 

@Directive({ 
    selector: '[appUrlBlocker]' 
}) 
export class UrlBlockerDirective { 
    constructor(private el: ElementRef) {} 

    expression = /[[email protected]:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~#?&//=]*)?/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" /> 

Working demo

関連する問題