util_parse_phone phone_numberWhat it does:
Tries to figure out the phone number from a user-entered string. Returns a tcl list with phone number and maybe extension.Defined in: /web/philip/tcl/intranet-wap-defs.tcl
Source code:
set result [ns_set new]
# Ugh. We should have stricter data format in the db.
regsub -all {\)|\(|\-|\.} $phone_number { } phone
if [regexp {([0-9][0-9][0-9]) +([0-9][0-9][0-9]) +([0-9][0-9][0-9][0-9])} $phone match area_code prefix suffix] {
# looks like a US phone number
regexp -indices {[0-9][0-9][0-9] +[0-9][0-9][0-9] +[0-9][0-9][0-9][0-9]} $phone ind
if { [lindex $ind 0] <= 1 } {
# looks a lot like a US phone number.
set last_part [string range $phone [expr [lindex $ind 1] + 1] [string length $phone]]
ns_set put $result number [list "$area_code$prefix$suffix"]
ns_set put $result type UsTenDigit
if [regexp {([xX]|ext|ex) *([0-9][0-9][0-9])} $last_part match ext_str ext] {
ns_set put $result extension $ext
}
return $result
}
}
# Just return all digits if we get here.
regsub -all {[^0-9]} $phone_number {} all_the_digits
ns_set put $result number $all_the_digits
return $result