2016-07-22 7 views
1

正規表現で少し苦労しています。どんな助けでも大歓迎です。ng-pattern(正規表現)を使用してドライブ文字を検証する

問題:パスにドライブ文字を入力するとエラーが表示されます。

たとえば、ユーザーがC:\またはD:\またはS:\ ....と入力した場合、フォームにエラーが表示されます。 誰かが// remote server/example.txtを入力した場合は、それを進めるべきです。

http://plnkr.co/edit/jyKfOdnctnhCkIeT4r2Z?p=preview

<form name='myform'>  
    <input type="text" name='ip' ng-model="usd" ng-pattern="/^[a-zA-Z]:*$/" 
    ng-change="convert_to_btc()" placeholder="Enter path"/> 
+0

の開始時に+ : + \だけでなく、手紙を禁止する必要がある場合、私はあなたが 'NGパターン="/^(必要だと思う?![-はZa - Z]:\\)/ "'、[this plunkr](http://plnkr.co/edit/3UcFZNsjxPkVXkUJizu2?p=preview)をチェックしてください。 'ng-pattern ="/^(?!。* \ b [a-zA-Z]:\\)/ "' –

答えて

1

ng-pattern「正」の正規表現、正しいものが何であるかの文字列を定義されたいくつかのパターンが必要です。したがって、^[a-zA-Z]:*$を定義すると、ASCII文字で始まる文字列のみを許可することになり、:を文字列の最後まで0回以上使用することができます。あなたが否定先読み必要

ng-pattern="/^(?![a-zA-Z]:\\)/" 
       ^^^   ^

ASCII文字は文字列の先頭の後がある場合(?![a-zA-Z]:\\)先読みはマッチに失敗したが、:、その後\と続きます。

this plunkrを参照してください。

あなたはstrin使用

ng-pattern="/^(?!.*\b[a-zA-Z]:\\)/" 
       ^^ 
+1

ありがとうございました。正確に私が必要なもの。今私はそれが動作する方法を知っている:) – pmh

関連する問題