dynamic
transform(value, pattern, replacement)
Source
dynamic transform(dynamic value, dynamic /* String | RegExp */ pattern,
dynamic /* Function | String */ replacement) {
if (value == null) {
return value;
}
if (!this._supportedInput(value)) {
throw new InvalidPipeArgumentException(ReplacePipe, value);
}
var input = value.toString();
if (!this._supportedPattern(pattern)) {
throw new InvalidPipeArgumentException(ReplacePipe, pattern);
}
if (!this._supportedReplacement(replacement)) {
throw new InvalidPipeArgumentException(ReplacePipe, replacement);
}
// template fails with literal RegExp e.g /pattern/igm
if (replacement is _Matcher) {
var rgxPattern =
pattern is String ? new RegExp(pattern) : (pattern as RegExp);
return input.replaceAllMapped(rgxPattern, replacement);
}
if (pattern is RegExp) {
// use the replaceAll variant
return input.replaceAll(pattern, (replacement as String));
}
return input.replaceFirst((pattern as String), (replacement as String));
}