我有像+41 000 0000 000
这样的电话号码,目前我只能用我的代码保留+
的签名,但我还需要从这些号码中删除空格。
这是我当前的函数
String flattenPhoneNumber(String phoneStr) {
return phoneStr.replaceAllMapped(RegExp(r'^(+)|D'), (Match m) {
return m[0] == "+" ? "+" : "";
});
}
我如何删除空格以及保持我的+
标志?
可以使用
String flattenPhoneNumber(String phoneStr) {
return phoneStr.replaceAll(RegExp(r'(?!^+)D'), '');
}
以下
print(flattenPhoneNumber("+41 000 0000 000"));
打印+410000000000
。
参见regex演示。(?!^+)D
模式匹配字符串开头不等于+
的任何非数字字符(D
)。
您不需要regex,您可以使用replaceAll
方法并将所有空格替换为":
String phoneStr = "+41 000 0000 000";
phoneStr = phoneStr.replaceAll(' ', '');
print(phoneStr); //+410000000000
已解决
我已经将我的代码更改为以下内容,它的工作原理如下:
String flattenPhoneNumber(String phoneStr) {
return phoneStr.replaceAll(' ', '').replaceAllMapped(RegExp(r'^(+)|D'), (Match m) {
return m[0] == "+" ? "+" : "";
});
}