Last active
September 19, 2019 07:44
-
-
Save helpermethod/0ce9d0d187a6d30cbff30e0028a4dc5b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class PhoneNumber { | |
private final String areaCode; | |
private final String phoneNumber; | |
private PhoneNumber(String areaCode, String phoneNumber) { | |
this.areaCode = areaCode; | |
this.phoneNumber = phoneNumber; | |
} | |
public static PhoneNumber create(String areaCode, String phoneNumber) { | |
String sanitizedAreaCode = | |
(areaCode == null ? "" : areaCode) | |
.trim() | |
.replaceAll("[^a-z+]", "") | |
.replaceFirst("^\\+?49", "") | |
.replaceFirst("^([^0])", "0$1"); | |
String sanitizedPhoneNumber = | |
(phoneNumber == null ? "" : phoneNumber) | |
.trim() | |
.replaceAll("[^a-z+]", ""); | |
// TODO handle same/similar areaCode/phoneNumber | |
return new PhoneNumber(sanitizedAreaCode, sanitizedPhoneNumber); | |
} | |
public String join(String separator) { | |
return areaCode + separator + phoneNumber; | |
} | |
public String phoneLink() { | |
return "tel:" + (areaCode + phoneNumber).replaceFirst("^0", "+49"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment