Tengo una cadena como: A123456789BC
Y me gustaría que la salida sea: A-123-456-789-BC para fines de visualización.
Estoy usando una expresión regular en la función de reemplazo, pero hasta ahora solo funciona: A-123-456-789BC
Esto es lo que tengo -
String.replace(/(\d{3})/g, (found) => {return '-' + found});
Básicamente, si tengo una cadena alfanumérica como la anterior, me gustaría que los números se agrupen en 3 y agregar separadores (-) al principio y al final.
Agradecería cualquier ayuda para lograr esto.
Agregue una coincidencia para el final y debería tenerla. Entonces haga coincidir 3 números o dos caracteres al final.
console.log('A123456789BC'.replace(/(\d{3}|[AZ]+$)/g, '-$1'))Actualizaría tu expresión regular de esta manera:
String.replace(/(\d{3}|(?<=\d{3})\D)/g, (found) => {return '-' + found})Esto no solo agregará un guión antes de un grupo de 3 dígitos, sino también antes de un carácter que no sea un dígito después de un grupo de 3 dígitos.
console.log('A123456789BC'.replace(/(\d{3}|(?<=\d{3})\D)/g, (found) => {return '-' + found}))