1

angularのng-pattern属性に入れる正規表現を探しています。

特定の小数パターンのみを満たす式を探しています。

exactly one digit --> than a decimal --> exactly 2 digits 

私が思いついた

\d{1}\.{1}\d{2}?

上記のパターンは、次の番号に正しく一致します。

2.22
3.12
0.34

これは問題ありませんが、ユーザーが入力した場合、12.12必要に応じてこれを拒否しません。

4

2 に答える 2

1

正確に 1 桁 --> 10 進数よりも --> 正確に 2 桁

単語境界を使用して、両側の不要なテキストと一致しないようにします。

\b\d\.\d{2}\b

正規表現のデモ

于 2016-01-21T20:08:00.813 に答える
1

このコンテンツのみが必要な場合は、単語の開始( ) アンカー^と単語の終了 ( $) アンカーを使用する必要があります。あなたの正規表現は次のようになります。

var regex = /^\d\.\d{2}$/;         //then just bind to controller

regex101 でテスト済み

ドキュメントによるとng-pattern

式が RegExp オブジェクトに評価される場合、これが直接使用されます。^式が文字列に評価される場合、文字でラップした後、正規表現に変換され$ます。たとえば、"abc"に変換されnew RegExp('^abc$')ます。

文字列入力を使用する場合は、バックスラッシュをエスケープして適切な正規表現文字列を取得する必要があることに注意してください。この場合、あなたはただ使うことができます

<input ng-model="yourModel" ng-pattern="\\d\\.\\d{2}" >
于 2016-01-21T20:12:45.803 に答える