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);