2012-05-01 334 views

Respuesta

593

No se necesita jQuery. uso

var ret = "data-123".replace('data-',''); 
console.log(ret); //prints: 123 

Docs.


Para todos los casos para ser descartados:

var ret = "data-123".replace(/data-/g,''); 

PS: La reemplazar la función devuelve una nueva cadena y deja la cadena original sin cambios, a fin de utilizar la función valor de retorno después de la llamada a replace().

+41

sentimos a comentar algo tan viejo , pero solo quiero agregar que .replace de javascript solo reemplaza la PRIMERA instancia del texto coincidente. –

+24

@ matthew_360, use el indicador 'g' regex:' str.replace (/ abc/g, ''); ' –

+0

@Mathletics mi error, el problema fue subjetivo para mí (Re: incompatibilidad IE) –

13

será suficiente Plain Old JavaScript - jQuery no es necesario para una tarea tan sencilla:

var myString = "data-123"; 
var myNewString = myString.replace("data-", ""); 

Ver:.replace() docs on MDN para la información y el uso adicional.

80

Esto no tiene nada que ver con jQuery. Puede utilizar la función de JavaScript replace para esto:

var str = "data-123"; 
str = str.replace("data-", ""); 

También puede pasar una expresión regular para esta función. En el siguiente ejemplo, que reemplazaría todo excepto numéricos:

str = str.replace(/[^0-9\.]+/g, ""); 
+0

gracias por la información. De hecho, necesito sentarme y aprender expresiones regulares también. es regex lo mismo en php y js? –

+1

Ligeramente diferente, pero en su mayor parte es el mismo. Una vez que aprenda la sintaxis de la expresión regular básica, el conocimiento se aplica en todos los lugares donde se usan. –

+0

¿qué ocurre si 'data-' está almacenado en una variable var x = 'data-' – Okky

8

que estaba acostumbrado al método String.Remove C# (sostenido). En Javascript, no hay una función de eliminación para la cadena, pero hay una función substr. Puede usar la función substr una o dos veces para eliminar caracteres de la cadena. Se puede hacer la siguiente función para eliminar caracteres de índice de inicio hasta el final de la cadena, al igual que el método C# sobrecargue primera String.Remove (int startIndex):

function Remove(str, startIndex) { 
    return str.substr(0, startIndex); 
} 

y/o también se puede hacer la siguiente función para eliminar caracteres en el índice de inicio y contar, al igual que el método C# segundo sobrecargue String.Remove (int startIndex, int count):

function Remove(str, startIndex, count) { 
    return str.substr(0, startIndex) + str.substr(startIndex + count); 
} 

y entonces usted puede utilizar estas dos funciones o uno de ellos para sus necesidades !

Ejemplo:

alert(Remove("data-123", 0, 5)); 

de salida: 123

33

Usted puede utilizar "data-123".replace('data-','');, como se ha mencionado, sino como replace() sólo se reemplaza el PRIMERA aparición del texto coincidente, si la cadena de era algo así como "data-123data-" luego

"data-123data-".replace('data-',''); 

solo reemplazará el primer texto coincidente. Y su salida será "123data-"

DEMO

lo tanto, si desea que todos los partidos de texto a ser reemplazados en cadena que tiene que utilizar una expresión regular con la bandera g así:

"data-123data-".replace(/data-/g,''); 

y la suya será "123"

DEMO2

19

se puede utilizar slice() que Returens charcters entre el principio hasta el final (punto final incluida)

string.slice(start , end); 

aquí es un poco de exmp para mostrar cómo funciona:

var mystr = ("data-123").slice(5); // jast define start point so output is "123" 
var mystr = ("data-123").slice(5,7); // define start and end so output is "12" 
var mystr=(",246").slice(1); // returens "246" 

Demo

+1

Esta no es una buena respuesta. por favor agregue alguna descripción o enlace de referencia a la función que da idea de cómo funciona esto. –

+0

Creo que es bueno y simple eliminar Prefix de la cadena .... espacialy es útil para eliminar la cadena (,) de la cadena de Frist –

+0

@ m.rshojaei por favor ponga su explicación dentro de su publicación (editando su publicación; de comentar) –

6

Usando match() y Number() para devolver una variable number:

Number(("data-123").match(/\d+$/)); 

// strNum = 123 

Esto es lo que hace la declaración anterior ... trabajando media de salida:

  1. str.match(/\d+$/) - Devuelve una matriz que contiene las coincidencias con cualquier longitud de los números al final de str. En este caso, devuelve una matriz que contiene un solo elemento de cadena ['123'].
  2. Number() - lo convierte en un tipo de número. Debido a que la matriz devuelta desde .match() contiene un solo elemento Number() devolverá el número.
11

Ex: -

var value="Data-123"; 
var removeData=value.replace("Data-",""); 
alert(removeData); 

Esperamos que esto va a funcionar para usted.

5

Esta pequeña función que hice siempre ha trabajado para mí :)

String.prototype.deleteWord = function (searchTerm) { 
    var str = this; 
    var n = str.search(searchTerm); 
    while (str.search(searchTerm) > -1) { 
     n = str.search(searchTerm); 
     str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length); 
    } 
    return str; 
} 

// Use it like this: 
var string = "text is the the cool!!"; 
string.deleteWord('the'); // Returns text is cool!! 

Sé que no es la mejor, pero siempre ha trabajado para mí :)

+0

Usted está mostrando en su respuesta cómo funciona la función de reemplazo de la cadena más o menos, pero de hecho el solo uso de la función de reemplazo de la secuencia es mucho más simple y más fácil que el código del tuyo! –

+0

Sí, he basado este código en mi función 'String.prototype.replaceWith' :) –

Cuestiones relacionadas