59

ダーツで文字列が数値かどうかを調べる必要があります。Dart の有効な数値型に対して true を返す必要があります。これまでのところ、私の解決策は

bool isNumeric(String str) {
  try{
    var value = double.parse(str);
  } on FormatException {
    return false;
  } finally {
    return true;
  }
}

これを行うネイティブな方法はありますか?そうでない場合、それを行うより良い方法はありますか?

4

5 に答える 5

17

さらに短い。doubleそれも同様に機能するという事実にもかかわらず、使用するnum方がより正確です。

isNumeric(string) => num.tryParse(string) != null;

num.tryParse中身:

static num tryParse(String input) {
  String source = input.trim();
  return int.tryParse(source) ?? double.tryParse(source);
}
于 2019-04-10T06:20:53.533 に答える
4
if (int.tryParse(value) == null) {
  return 'Only Number are allowed';
}
于 2021-06-16T08:41:28.713 に答える