github.com/seeker-insurance/kit@v0.0.13/address/normalize.go (about)

     1  package address
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/seeker-insurance/kit/str"
     7  )
     8  
     9  func normalizeComponent(s string) string {
    10  	s = str.ExtremeNormalization(s)
    11  	return NormalizeSuffixes(s)
    12  }
    13  
    14  var suffixReplacer = makeSuffixReplacer()
    15  
    16  func makeSuffixReplacer() *strings.Replacer {
    17  	pairs := make([]string, 0, len(suffixVariations)*2)
    18  	for key, val := range suffixVariations {
    19  		pairs = append(pairs, key, val)
    20  	}
    21  	return strings.NewReplacer(pairs...)
    22  
    23  }
    24  
    25  //NormalizeSuffixes normalizes lowercase address suffixes to the standard format used by the United States Postal Service.
    26  //i.e, "pkwy": "parkway",
    27  //see http://www.pb.com/docs/us/pdf/sis/mail-services/usps-suffix-abbreviations.pdf
    28  func NormalizeSuffixes(s string) string {
    29  	return suffixReplacer.Replace(s)
    30  }