Pequeña pregunta muy simple, pero no entiendo cómo hacerlo.
Necesito reemplazar cada instancia de '_' con un espacio, y cada instancia de '#' con nada / vacío.
var string = '#Please send_an_information_pack_to_the_following_address:';
He intentado esto:
string.replace('#','').replace('_', ' ');
Realmente no me gusta encadenar comandos como este. ¿Hay otra forma de hacerlo en uno?
javascript
jquery
Shannon Hochkins
fuente
fuente
Respuestas:
Use el operador OR (
|
):También podría usar una clase de caracteres:
Violín
Si desea reemplazar el hash con una cosa y el guión bajo con otra, entonces solo tendrá que encadenar. Sin embargo, puede agregar un prototipo:
¿Por qué no encadenar, sin embargo? No veo nada malo con eso.
fuente
#|_
es[#_]
, y también podría usar+
para emparejar cualquier partido consecutivo para mejorar el rendimientostr.replace(/[+ -]/g,'');
solo coloca el espacio en blanco en el medio.El encadenamiento es genial, ¿por qué descartarlo?
De todos modos, aquí hay otra opción en un reemplazo:
El reemplazo elegirá "" si coincide == "#", "" si no.
[Actualización] Para una solución más genérica, puede almacenar sus cadenas de reemplazo en un objeto:
fuente
var regex = new RegExp( Object.keys(replaceChars).join("|"), "g");
string.replace(regex,function(match) {return replaceChars[match];})
esto facilita la modificación de los replaceChars.Si desea reemplazar varios caracteres, puede llamar al
String.prototype.replace()
con el argumento de reemplazo que es una función que se llama para cada coincidencia. Todo lo que necesita es un objeto que represente el mapeo de caracteres que usará en esa función.Por ejemplo, si desea
a
reemplazar conx
,b
cony
yc
conz
, puede hacer algo como esto:Salida :
234xyz567yyyyxz
fuente
var
conconst
aquí. Una alternativa para el soporte extendido del navegador:var s ='234abc567bbbbac'; s = s.replace(/[abc]/g, function(m) { return {'a':'x','b':'y','c':'z'}[m]; }); console.log(s);
var chars = {a:'1', b:'2', c:'3'}; var s = '123abc123'; var u = s.replace(/[abc]/g, function(m) { return chars[m]; }); WScript.echo(u);
Especifique el
/g
indicador (global) en la expresión regular para reemplazar todas las coincidencias en lugar de solo la primera:Para reemplazar un personaje con una cosa y un personaje diferente con otra cosa, realmente no puede evitar necesitar dos llamadas separadas
replace
. Puede abstraerlo en una función como lo hizo Doorknob, aunque probablemente haría que tomara un objeto con viejos / nuevos como pares clave / valor en lugar de una matriz plana.fuente
También puedes probar esto:
find
se refiere al texto a encontrar yreplace
al texto a reemplazar porEsto reemplazará los caracteres que no distinguen entre mayúsculas y minúsculas. Para hacerlo de otra manera, simplemente cambie las banderas Regex según sea necesario. Por ejemplo: para mayúsculas y minúsculas, reemplace:
fuente
Puedes probar esto:
esto reemplazará., - y # con su replacechar!
fuente
Aquí hay una manera simple de hacerlo sin RegEx.
Puede crear prototipos y / o almacenar en caché las cosas que desee.
fuente
str.replace(/#|_/g,'')
sed
y o a la Unixtr
), esta parece ser la respuesta correcta.Por favor, inténtalo:
reemplazar múltiples cuerdas
var str = "http://www.abc.xyz.com"; str = str.replace(/http:|www|.com/g, ''); //str is "//.abc.xyz"
reemplazar múltiples caracteres
var str = "a.b.c.d,e,f,g,h"; str = str.replace(/[.,]/g, ''); //str is "abcdefgh";
¡Buena suerte!
fuente
También puede pasar un objeto RegExp al método de reemplazo como
Javascript RegExp
fuente
replace
llamadas, esto no ayuda a evitar eso.yourstring = '#Por favor envíe_un_information_pack_to_the_following_address:';
reemplace '#' con '' y reemplace '_' con un espacio
newstring2 es tu resultado
fuente
var str = '#this #is__ __#a test###__';
que hay varios espacios claros en esta cadena.Aquí hay otra versión con String Prototype. ¡Disfrutar!
fuente
No sé si esto ayudará, pero quería eliminar
<b>
y</b>
de mi cadenaentonces solía
Básicamente, si desea que se reduzca un número limitado de caracteres y no pierda tiempo, esto será útil.
fuente
Aquí hay una función "HTML seguro" que utiliza una función de reemplazo múltiple 'reducir' (esta función aplica cada reemplazo a toda la cadena, por lo que las dependencias entre los reemplazos son significativas).
fuente