2011-02-14 17 views
49

eliminación de los números de secuenciaeliminando los números de la cadena?

questionText = "1 ding ?" 

quiero reemplazar este número y la pregunta número, el número puede ser cualquier número, He intentado siguiente código thats no trabaja

questionText.replace(/[0-9]/g, ''); 
+2

¿Qué es exactamente lo que no funciona? Porque está eliminando el número ... –

+0

¿También necesitará quitar puntos decimales? – glowworms

+1

@Berbi Esta pregunta no está duplicada.El citado "El método Reemplazar no funciona" no tiene un título adecuado para que el usuario pueda escribir y buscar "Eliminar números de la cadena". Mala moderación. –

Respuesta

99

Muy cerca, trate de:

questionText = questionText.replace(/[0-9]/g, ''); 

replace no funciona en la cadena existente, devuelve una nueva. Si quieres usarlo, ¡debes conservarlo!
Del mismo modo, se puede utilizar una nueva variable:

var withNoDigits = questionText.replace(/[0-9]/g, ''); 

Un último truco para eliminar los bloques enteros de dígitos a la vez, sino que uno puede ir demasiado lejos:

questionText = questionText.replace(/\d+/g, ''); 
+0

como, bueno don Kobi. parece que me ganaste a la misma respuesta. Debo aprender a escribir más rápido. – Spudley

+0

¿puedo reemplazar? & * de una cadena en una reemplaza un método como str.replace ("?, *", ""); – kiran

+0

que no funciona, quiero reemplazar ambos? y * con espacio en mi cadena – kiran

8

Eres muy cerca .

Aquí está el código que escribió en la pregunta:

questionText.replace(/[0-9]/g, ''); 

El código que ha escrito en efecto mirar a la variable questionText, y producir una salida que es la cadena original, pero con los dígitos sustituido por vacío cuerda.

Sin embargo, no lo asigna automáticamente a la variable original. Es necesario especificar qué asignarlo a:

questionText = questionText.replace(/[0-9]/g, ''); 
9

cadena son immutable, por eso questionText.replace(/[0-9]/g, ''); por sí mismo hace el trabajo, pero no cambia el questionText cuerdas. Deberá asignar el resultado del reemplazo a otra variable String o a questionText nuevamente.

var cleanedQuestionText = questionText.replace(/[0-9]/g, ''); 

o en 1 go (usando \d+, véase la respuesta de Kobi):

questionText = ("1 ding ?").replace(/\d+/g,''); 

y si desea recortar el espacio (s) líder (anterior y posterior), mientras estás en ello:

questionText = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,''); 
+0

No olvide '/ g' en todas las expresiones regulares - JavaScript es molesto de esa manera':) ' – Kobi

1

Sólo quiero añadir, ya que podría ser de interés para alguien, que puede pensar en el problema a la inversa también. No estoy seguro si eso es de interés aquí, pero lo encuentro relevante.

Lo que quiero decir con la otra forma es decir "quitar todo lo que no son lo que busco, es decir, si sólo desea que el 'ding' se podría decir:

var strippedText = (" 1 ding? "). replace (/ [^ a-zA-Z]/g, '');

Que significa básicamente" eliminar todo lo que es nog a, b, c, d .... Z (cualquier carta).

Cuestiones relacionadas