regulares expresiones commas all javascript string replace substitution

commas - replace javascript expresiones regulares



JavaScript-Reemplace todas las comas en una cadena (3)

El tercer parámetro de la función String.prototype.replace() nunca se definió como un estándar, por lo que la mayoría de los navegadores simplemente no lo implementan.

La mejor manera es usar expresiones regulares con global bandera g ( global ).

var myStr = ''this,is,a,test''; var newStr = myStr.replace(/,/g, ''-''); console.log( newStr ); // "this-is-a-test"

¿Todavía tienes problemas?

Es importante tener en cuenta que las expresiones regulares utilizan caracteres especiales que deben escaparse . Como ejemplo, si necesita escapar de un carácter de punto ( . ), Debe usar //./ literal, ya que en la sintaxis de //./ regulares un punto coincide con cualquier carácter individual (excepto los terminadores de línea).

var myStr = ''this.is.a.test''; var newStr = myStr.replace(//./g, ''-''); console.log( newStr ); // "this-is-a-test"

Si necesita pasar una variable como una cadena de reemplazo, en lugar de usar el literal de expresiones regulares, puede crear un objeto RegExp y pasar una cadena como el primer argumento del constructor . Las reglas normales de escape de la cadena (que preceden a los caracteres especiales con / cuando se incluyen en una cadena) serán necesarias.

var myStr = ''this.is.a.test''; var reStr = ''//.''; var newStr = myStr.replace(new RegExp(reStr, ''g''), ''-''); console.log( newStr ); // "this-is-a-test"

Esta pregunta ya tiene una respuesta aquí:

Tengo una cadena con varias comas, y el método de reemplazo de cadena solo cambiará el primero:

var mystring = "this,is,a,test" mystring.replace(",","newchar", -1)

Resultado : "thisnewcharis,a,test"

La documentación indica que el valor predeterminado reemplaza a todos, y que "-1" también indica que se deben reemplazar todos, pero no tiene éxito. ¿Alguna idea?


Solo por diversión:

var mystring = "this,is,a,test" var newchar = ''|'' mystring = mystring.split('','').join(newchar);


var mystring = "this,is,a,test" mystring.replace(/,/g, "newchar");

Usa la bandera global ( g )

DEMO simple