2012-01-09 5 views
32

Estoy teniendo un problema con el recorte de jQuery. Tengo una cadena como en jQuery:RTrim en javascript

var string1; 
string1 = "one~two~"; 

¿Cómo recorto la tilde final?

+4

jQuery * is * JavaScript. Esto no tiene nada que ver con jQuery, es solo JavaScript. –

+2

Si hubiera una forma de escribir javascript en el código jquery en alguna parte ... – Konerak

+0

¿Desea una cadena sin la tilde o una matriz con 'uno' y 'dos ​​ ? –

Respuesta

63

El método de jQuery .trim() se refiere a los espacios en blanco ..

Descripción: Retire el espacio en blanco desde el principio y el final de una cadena.


Usted necesita

string1.replace(/~+$/,''); 

Esto eliminará todos detrás ~.

Así one~two~~~~~ también se convertiría en one~two

+0

Esto se desnuda ~ al principio también, pero solo si hay un ~ al final. – Armin

+2

@Armin: No, no lo hará. Coincide con uno o más '~' seguidos por el final de la cadena. –

+2

@armin, no, no lo hará por el '$' al final. Esto significa que la serie de '~' debe estar al final de la cadena. –

-1
var myStr = "One~Two~Three~Four~"  
var strLen = myStr.length; 
myStr = myStr.slice(0,strLen-1); 
alert (myStr); 

Esto eliminará el último carácter de la cadena. ¿Es eso lo que querías?

8

sólo tiene que utilizar el Javascript reemplazar a cambiar la última cadena en la nada:

string1.replace(/~+$/g,""); 
2

Una opción:

string1 = string1.substring(0,(string1.length-1)); 

largo camino alrededor de ella .. y jsut quita el último carácter .. no la tilde en concreto ..

+1

Quiere una función que funcione como 'Trim()' pero con '~' en lugar de espacios en blanco. –

+0

ya ... supongo que la expresión regular es el camino a seguir :) ... – Silvertiger

-6

Puede utilizar substring javascript método.

probar este

var string1 = "one~two~"; 
string1 = $.trim(string1).substring(0, string1.length -1); 
+2

Esto recortará cualquier carácter del final de la cadena de entrada, no solo según lo solicitado. –

1

OMI esta es la mejor manera de hacer un ajuste/izquierda a la derecha y, por lo tanto, tiene una funcionalidad completa para recortar (desde javascript apoya string.trim forma nativa)

String.prototype.rtrim = function (s) { 
    if (s == undefined) 
     s = '\\s'; 
    return this.replace(new RegExp("[" + s + "]*$"), ''); 
}; 
String.prototype.ltrim = function (s) { 
    if (s == undefined) 
     s = '\\s'; 
    return this.replace(new RegExp("^[" + s + "]*"), ''); 
}; 

Uso ejemplo:

var str1 = ' jav ~' 
var r1 = mystring.rtrim('~'); // result = ' jav ' <= what OP is requesting 
var r2 = mystring.rtrim(' ~'); // result = ' jav' 
var r3 = mystring.ltrim();  // result = 'jav ~' 

PS Si está especificando un parámetro para rtrim o ltrim, asegúrese de utilizar una cadena compatible con expresiones regex. Por ejemplo, si desea hacer un rtrim por [, debe usar: somestring.rtrim('\\[')