adventjs-issues
adventjs-issues copied to clipboard
[RegExp] Unexpected SyntaxError: Unterminated string constant
¡Buenas!
Estaba buscando diferentes soluciones para los retos y me topé con un problema inesperado con la creación de expresiones regulares por el constructor de la clase.
const regexp = new RegExp('$'); // → SyntaxError: Unterminated string constant
[!NOTE]
- Solo sucede con el signo de fin de
string
en las expresiones regulares ($
)- Solo sucede cuando el string se declara con comilla simple (
'
) o backticks (`
), pero no con comillas dobles ("
)- Solo sucede usando el constructor de la clase, la declaración literal
const regex = /$/
funciona bien.
Buenas, desconozco porque ocurre esto (imagino que al enviar el código al server da error de escape en el caracter, pero vamos es una hipótesis)
Las soluciones temporales que te propongo mientras tanto son:
- Usar el carácter dentro de un template-string. Ejemplo:
const regex = new RegExp(
${"$"});
- Usar el caracter unicode de $. Ejemplo:
const regex = new RegExp('\u0024')
Espero que te sirva