Sha256: 73f80adf606fbdf4fc883d6ed3e130f466fbc543d680ae5bc0639ca46b87008e
Contents?: true
Size: 553 Bytes
Versions: 23
Compression:
Stored size: 553 Bytes
Contents
data class PhoneNumber(private val rawNumber: String) { companion object { private val validationRegex = Regex("^1?(\\d{10})$") } private val cleanedNumber = rawNumber.replace(Regex("[^\\d]"), "") val number = validationRegex.matchEntire(cleanedNumber)?.groupValues?.last() ?: throw IllegalArgumentException() val areaCode = number.substring(0, 3) val exchangeCode = number.substring(3, 6) val subscriberNumber = number.substring(6, 10) override fun toString() = "($areaCode) $exchangeCode-$subscriberNumber" }
Version data entries
23 entries across 23 versions & 1 rubygems