Estoy tratando de averiguar cómo extraer el código de estado de cualquier tipo de dirección.
“123 Sunny Dr., Los Angeles, CA 90210, US” “123 Sunny Lane, Unit B, Los Angeles, CA 90210, USA” “123 Sunny Ct, Hollywood, CA, USA” “Los Angeles, CA, US” Para cualquiera de estos, me gustaría que el valor de retorno sea “CA”
Usaría match aquí con una alternancia que contenga todos los códigos de estado de EE. UU.:
var addresses = ["123 Sunny Dr., Los Angeles, CA 90210, US", "123 Sunny Lane, Unit B, Los Angeles, CA 90210, USA", "123 Sunny Ct, Hollywood, CA, USA", "Los Angeles, CA, US"]; var states = addresses.map(x => x.match(/\b(?:AL|AK|AZ|AR|CA|CO|CT|DE|DC|FL|GA|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY)\b/)); for (var i=0; i < addresses.length; ++i) { console.log(addresses[i] + " => " + states[i]); } Podríamos tratar de formular el código de estado como una palabra de dos letras mayúsculas, pero eso corre el riesgo de coincidir con US , que no es un código de estado, sino un código de país. Aquí funciona una alternancia codificada, ya que hay menos de 100 códigos de estado/territorio en total para EE. UU.
Suponiendo que obtiene solo una cadena, puede