Custom Decimalの私の定義=>数値は (p,s) として表すことができます。ここで、p は精度、s はスケールであり、精度とスケールに関してすべてを記述します。小数部分が 8 桁を超える小数を格納する必要がある場合は、カスタム 10 進数を使用します。位取りの最大値は 29、精度の最大値は 30 です。数値の非小数部は最大 29 桁です。
P と S は異なる場合があります...
P= 18 S=12 と仮定 ie/ (P,S) = (18,12)
intLength = 12
小数の長さ = 18
コードの一部
String regExprCD = "^-?\\d{1,"+intLength+"}(?>\\.\\d{0,"+fractionalLength+"})?$";
info("regExprCD = "+regExprCD );
if (value.matches(regExprCD ) || value.isEmpty()){
Window.alert("Valid CUSTOM_DECIMAL value");
}else{
Window.alert("Valid CUSTOM_DECIMAL value");
}
正規表現に従ってみましたが、 「正規表現の構文エラー」ページにエラーが表示されます
^-?\\d{1,"+intLength+"}(?>\\.\\d{0,"+fractionalLength+"})?$
これは、次のケースを許可する完璧な正規表現です:
正規表現は、次のカスタム 10 進数を受け入れる必要があります。
123456789012345678
1234567.1234567890
1.123456789012
1234567890.1234567
12345678901234567。
12345。
正規表現は、次のカスタム 10 進数を受け入れてはなりません:
12345678901234567890 : 理由 P > 18 :: P は 18 を超えてはなりません
1234567.1234567890123 : 理由 s>12 : :: S は 12 を超えてはなりません
.1 または .1232 :: 無効
^-?\\d{1,"+intLength+"}(?>\\.\\d{0,"+fractionalLength+"})?$
この正規表現を使用しました。
この正規表現は、Sample Java プログラムで正常に機能します。GWT で動作しない
Web ページ (GWT で開発) でエラーをスローする ::「正規表現の構文エラー」
intLength と fractionalLength のデータ型は何ですか? int または文字列 ?
完璧な正規表現はどれ?
この問題に関するヘルプまたはガイダンスをいただければ幸いです。