array - slice javascript
¿Reemplazando espacios con guiones bajos en JavaScript? (8)
Estoy tratando de usar este código para reemplazar espacios con _, funciona para el primer espacio en la cadena pero todas las demás instancias de espacios permanecen sin cambios. Alguien sabe por qué?
function updateKey()
{
var key=$("#title").val();
key=key.replace(" ","_");
$("#url_key").val(key);
}
Creé la prueba de rendimiento JS para ella http://jsperf.com/split-and-join-vs-replace2
Para responder a la pregunta de Prasanna a continuación:
¿Cómo reemplazas los espacios múltiples por espacio único en Javascript?
Usaría la misma función replace
con una expresión regular diferente. La expresión para el espacio en blanco es /s
la expresión para "1 o más veces" es +
el signo más, por lo que simplemente reemplazaría la respuesta de Adam con lo siguiente:
key=key.replace(//s+/g,"_");
Pruebe .replace(/ /g,"_");
Edite : o .split('' '').join(''_'')
si tiene una aversión a los REs
Edit : John Resig dijo :
Si está buscando y reemplazando a través de una cadena con una búsqueda estática y un reemplazo estático, es más rápido realizar la acción con .split ("emparejar"). Unirse ("reemplazar") - lo que parece ser contraintuitivo pero logra funcionar De esa manera en la mayoría de los navegadores modernos. (Se están realizando cambios para mejorar enormemente el rendimiento de .replace (/ match / g, "replace") en la próxima versión de Firefox, por lo que la afirmación anterior no será el caso por mucho tiempo).
Puedes probar esto
var str = ''hello world !!'';
str = str.replace(//s+/g, ''-'');
Incluso reemplazará múltiples espacios con un solo ''-''.
Reemplazar espacios con guión bajo
var str = ''How are you'';
var replaced = str.split('' '').join(''_'');
Salida: How_are_you
Sé que esto es viejo, pero no vi a nadie mencionar la extensión del prototype
String.
String.prototype.replaceAll = function(search, replace){
if(!search || !replace){return this;} //if search entry or replace entry empty return the string
return this.replace(new RegExp(''['' + search + '']'', ''g''), replace); //global RegEx search for all instances ("g") of your search entry and replace them all.
};
prueba esto:
key=key.replace(/ /g,"_");
Eso hará una búsqueda / reemplazo global.
var text = ''Hello World'';
new_text = text.replace ('''', ''_'');
console.log (new_text);