Flutter 如何在颤振中用星号替换部分字符串?

Flutter 如何在颤振中用星号替换部分字符串?,flutter,dart,Flutter,Dart,我想用星号(*符号)替换字符串的一部分。 我怎样才能做到这一点?我一直在四处寻找,但找不到解决办法 例如,我从后端获取0123456789,但我只想将其显示为*******6789 请告知。 非常感谢。试试这个: void main(List<String> arguments) { String test = "0123456789"; int numSpace = 6; String result = test.replaceRange(0, numSpace, '*

我想用星号(*符号)替换字符串的一部分。 我怎样才能做到这一点?我一直在四处寻找,但找不到解决办法

例如,我从后端获取0123456789,但我只想将其显示为*******6789

请告知。 非常感谢。

试试这个:

void main(List<String> arguments) {
  String test = "0123456789";
  int numSpace = 6;
  String result = test.replaceRange(0, numSpace, '*' * numSpace);
  print("original: ${test}  replaced: ${result}");
}

您可以通过匹配除最后一个
n
char之外的所有字符的
RegExp
轻松实现它

例如:

void main() {
  String number = "123456789";
  String secure = number.replaceAll(RegExp(r'.(?=.{4})'),'*'); // here n=4
  print(secure);
}
输出:
****6789


希望有帮助

尝试使用replaceRange。它像魔术一样工作,不需要正则表达式。它用您选择的字符串替换您的值范围

//for example
prefixMomoNum = prefs.getString("0267268224");

prefixMomoNum = prefixMomoNum.replaceRange(3, 6, "****");
//Output 026****8224 

请记住,任何人都可以看到您从后端发送的内容,在前端修改不会对最终用户隐藏它。
//for example
prefixMomoNum = prefs.getString("0267268224");

prefixMomoNum = prefixMomoNum.replaceRange(3, 6, "****");
//Output 026****8224