DEV Community

Discussion on: Daily Challenge #179 - Hide Phone Numbers

Collapse
 
exts profile image
Lamonte • Edited

Dart - not a fan of being creative.

String encryptNum(String phoneNum) {
  var regexp = RegExp(r"([0-9- .]+)");
  var result = regexp?.firstMatch(phoneNum)?.group(0);
  result = result?.replaceAll(new RegExp(r"(\.|-|\s)"), "");
  if(result.length == 10) {
    var val = StringBuffer();
    for(var idx = 0; idx < result.length; idx++) {
      if(idx < 4) {
        val.write(result[idx]);
      } else {
        val.write("X");
      }
      switch(idx) {
        case 2:
        case 5:
          val.write("-");
        break;
      }
    }
    return val.toString();
  }
  return null;
}
print(encryptNum("142 424 2142"));
print(encryptNum("142 424-2142"));
print(encryptNum("142 424.2142"));
print(encryptNum("142 4242142"));
print(encryptNum("142-424-2142"));
print(encryptNum("142-424 2142"));
print(encryptNum("142-424.2142"));
print(encryptNum("142-4242142"));
print(encryptNum("142.424 2142"));
print(encryptNum("142.424-2142"));
print(encryptNum("142.424.2142"));
print(encryptNum("142.4242142"));
print(encryptNum("142424-2142"));
print(encryptNum("142424.2142"));
print(encryptNum("142424 2142"));
print(encryptNum("1424242142"));