Editar: La pregunta se cerró como duplicada, y hasta cierto punto lo es. La pregunta vinculada trata con un uso de variable más simple, resuelto solo por RegExp (). Esta pregunta necesitaba emparejarse con String.raw (...

-1
OXiGEN 3 mar. 2021 a las 03:13

1 respuesta

La mejor respuesta

Cuando usa new RegExp, debe asegurarse de que sus caracteres de expresión regular no estropeen la cadena que se está pasando. Por lo general, \ escapará de la cadena, por lo que usar algo como \s causará problemas. Para ayudar a administrar esto, puede usar una plantilla literal con String.raw. Vea el ejemplo a continuación:

let c = 'ns1_val ns2_val',
  ns = 'ns1_',
  r = '';

r = c.replace(new RegExp(String.raw`(^|\s)${ns}\S+`, 'g'), ''); 
console.log(r);
2
Nick Parsons 3 mar. 2021 a las 00:26