Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/metamta/message/PhabricatorPhoneNumber.php
12256 views
1
<?php
2
3
final class PhabricatorPhoneNumber
4
extends Phobject {
5
6
private $number;
7
8
public function __construct($raw_number) {
9
$number = preg_replace('/[^\d]+/', '', $raw_number);
10
11
if (!preg_match('/^[1-9]\d{9,14}\z/', $number)) {
12
throw new Exception(
13
pht(
14
'Phone number ("%s") is not in a recognized format: expected a '.
15
'US number like "(555) 555-5555", or an international number '.
16
'like "+55 5555 555555".',
17
$raw_number));
18
}
19
20
// If the number didn't start with "+" and has has 10 digits, assume it is
21
// a US number with no country code prefix, like "(555) 555-5555".
22
if (!preg_match('/^[+]/', $raw_number)) {
23
if (strlen($number) === 10) {
24
$number = '1'.$number;
25
}
26
}
27
28
$this->number = $number;
29
}
30
31
public function toE164() {
32
return '+'.$this->number;
33
}
34
35
}
36
37