Typescript cómo escapar el carácter de barra invertida
Me gustaría crear una expresión regular en Typescript para coincidir con el carácter separador decimal seguido de una secuencia de 0s en una cadena. Por ejemplo, si el separador decimal es ., entonces la expresión que se me ocurrió es:
/\.0+\b/g
Dado que el separador decimal se determina en tiempo de ejecución según la configuración regional, estoy construyendo mi expresión en el código, con decimalSeperator como una variable:
"/\\" + decimalSeperator + "0+\b/";
Mi intención es que los caracteres de doble barra invertida se escapen a un solo carácter de barra invertida.
Sin embargo, los caracteres de doble barra invertida no están siendo escapados en mi JavaScript compilado:
"/\\" + decimalSeperator + "0+\b/"
Sin embargo, si usara una sola barra invertida, el código no se compilará debido a que el " está escapado:
"/\" + decimalSeperator + "0+\b/";
- error TS1005: se esperaba '','.
- error TS1127: Carácter inválido.
- error TS1002: Literal de cadena sin terminar.
¿Es esto un error de Typescript o estoy haciendo algo mal?
Gracias
Respuesta #1
Sin embargo, los caracteres de doble barra invertida no se están escapando en mi JavaScript compilado
Eso es intencional. El JavaScript en tiempo de compilación será muy similar al TypeScript antes de compilar. "\\" se compilará como "\\". Sin embargo, en tiempo de ejecución "\\" será \, es decir, una sola barra invertida.
console.log("\\"); // prints "\"
