1

次のシナリオでは、正規表現を作成する必要があります。

数字のみと、ドットまたはコンマを 1 つだけ含めることができます。

最初の部分は 1 ~ 3 桁です。2 番目の部分は、ドットまたはコンマにすることができます。3 番目の部分は 1 桁から 2 桁です。

有効なシナリオは次のとおりです。

123,12
123.12
123,1
123
12,12
12.12
1,12
1.12
1,1
1.1
1

ここまでこの表現にたどり着きました

\d{1,3}(?:[.,]\d{1,2})?

しかし、うまくいきません。たとえば、11:11 という入力は有効としてマークされます。

4

2 に答える 2

5

式の周りにアンカーを配置する必要があります。

^\d{1,3}(?:[.,]\d{1,2})?$

^文字列の先頭に一致します

$文字列の末尾に一致します

これらのアンカーが欠落している場合、文字列で部分的に一致します。最後の部分はオプションであるため、「11:11」ではコロンの前の数字で一致し、2 番目の一致はコロンの後の数字で一致することを意味します。

于 2012-10-11T09:41:57.567 に答える
2

とを使用^してみてください$

^\d{1,3}(?:[.,]\d{1,2})?$

^ 一致は、文字列または行の先頭から開始する必要があります。

$ 一致は、文字列\nの末尾か、行または文字列の末尾の前で発生する必要があります。

于 2012-10-11T09:44:25.997 に答える