substringLoose method

String substringLoose(
  1. int start, [
  2. int? end
])

A version of String.substring with less strict bounds.

Returns the substring from start (inclusive) to end (exclusive).

Unlike String.substring, clamps start and end to length. Thus if start is out-of-bounds, returns an empty string. If end is out-of-bounds, returns the substring from start to the end of this string.

If start >= end, returns an empty string.

Implementation

String substringLoose(int start, [int? end]) {
  start = min(length, start);
  end = max(start, min(length, end ?? length));
  return substring(start, end);
}