- VERSION =
NameFormatterModule::VERSION
- PREFIXES =
Set.new(["Mr", "Mrs", "Ms", "Miss", "The Hon", "Rev", "Dr", "Fr", "Pres", "Prof", "Msgr", "Sen", "Gov", "Rep", "Amb"]).freeze
- SUFFIXES =
Set.new([
"Esq", "Jr", "Sr", "III", "II", "I", "V", "IV", "MD", "DC", "DO", "DVM", "LLD", "VM", "DDS", "Ret", "CPA", "JD", "PhD",
"LLC", "Inc", "Corp", "Ltd", "Co", "LLC", "PLC", "GmbH", "AG", "SA", "SARL", "SRL", "BV", "CV", "NV", "SE", "SC", "SL", "SLL", "SLLC", "SCS", "SCA", "SCRL", "SCA"
]).freeze
- NAME_REGEX =
/^(?<prefix>(#{PREFIXES.join("|")}?)\.?)?\s*(?<first_name>[\w-]+)\s+(?<last_name>[\w\s'-]+)\s*(?<suffix>(#{SUFFIXES.join("|")})\.?)?$/ix
- COMPANY_SUFFIX_REGEX =
/^(.+)\s+(Inc\.?|Corp\.?|Ltd\.?|LLC|LLP|LP|Limited|Corporation|Company)$/i
- FAMILY_BUSINESS_REGEX =
/^(.+)\s+(?:and|&)\s+Sons$/i
- MULTIPLE_FAMILY_NAMES_REGEX =
/^[\w']+,\s+[\w']+\s+(?:and|&)\s+[\w']+$/i
- DOUBLE_BARRELLED_NAME_REGEX =
/^[\w']+-[\w']+$/
- LAW_FIRM_REGEX =
/^(?:[A-Z][a-z]+\s+){2,}(?:LLP|LLC|PC|PLLC)?$/
- COMPANY_CO_REGEX =
/^(.+)\s+(?:Company|Co\.)$/i
- GROUP_HOLDINGS_REGEX =
/^(.+)\s+(?:Group|Holdings)$/i
- GEOGRAPHIC_COMPANY_REGEX =
/^(.+)\s+of\s+[A-Z][a-z]+$/i
- TRADING_ENTERPRISES_REGEX =
/^(.+)\s+(?:Trading|Enterprises)$/i
- DUNAME_REGEX =
/^Du[b](?=[aeiou])/i
- DENAME_REGEX =
/^De[bfghjlmnpvw][aeioulr](?!(?:sik|a)(?:[-,])?$)/i
- MCNAME_REGEX =
/^Mc[a-z]+/i
- MACNAME_REGEX =
/^Mac(?:[aà][bdilmnors]|b[eh]|c[aeioruò]|d[h]|e[aò]|f[hiru]|g[ahilouy]|i[alo]|l[aeiouù]|m[hiua]|n[aeèiìo]|p[h]|r[aiìou]|s[hipu]|t[hiu]|u[airs])+/i
- PARTICLE_REGEX =
/^(de[rsl]|d[aiu]|v[oa]n|te[nr]|la|les|y|and|zu|dell[ao])$/i