Intentando reemplazar los special characters precedidos por dígitos con dot .
const time = "17:34:12:pm"; const output = time.replace(/\d+(.)/g, '.'); // Expected Output "17.34.12.pm" console.log(output);Había escrito la expresión regular que capturará cualquier carácter precedido por dígito/s. La salida también reemplaza el dígito con el reemplazo. ¿Puede alguien ayudarme a resolver el problema?
Puedes usar
const time = "17:34:12:pm"; const output = time.replace(/(\d)[\W_]/g, '$1.'); console.log(output); El time.replace(/(\d)[\W_]/g, '$1.') coincidirá y capturará un dígito en el Grupo 1 y coincidirá con cualquier carácter que no sea palabra o guión bajo, y el $1. reemplazo devolverá el dígito y reemplazará : con . .
Si desea "restar" el patrón de espacios en blanco de [\W_] , use (?:[^\w\s]|_) .
Considere verificar más patrones de caracteres especiales en Buscar caracteres especiales en la cadena .
Debe buscar caracteres que no sean palabras ( \w ) ni espacios ( \s ) y reemplácelos con un punto.
Debería usar algún simulador en vivo para expresiones regulares. Por ejemplo regex101 : https://regex101.com/r/xIStHH/1
const time = "17:34:12:pm"; const output = time.replace(/[^\w\s]/g, '.'); // Expected Output "17.34.12.pm" console.log(output);