1

正規表現で少し苦労しています。どんな助けでも大歓迎です。

問題: ユーザーがパスにドライブ文字を入力したときにエラーを表示したい。

例: ユーザーが 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"/>
4

1 に答える 1

1

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

否定的な先読みが必要です:

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

文字列の(?![a-zA-Z]:\\)先頭の後に ASCII 文字があり、その後に a:とが続く場合、先読みは一致に失敗します\

この plunkrを参照してください。

文字列の開始時だけでなく+ :+の文字を禁止する必要がある場合は、使用\

ng-pattern="/^(?!.*\b[a-zA-Z]:\\)/"
                 ^^
于 2016-07-22T19:45:59.413 に答える