RTrim en jQuery

3 minutos de lectura

avatar de usuario
Nate mascota

Tengo un problema con el ajuste de jQuery. Tengo una cadena como en jQuery:

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

¿Cómo puedo recortar la tilde final?

  • jQuery es JavaScript. Esto no tiene nada que ver con jQuery, es solo JavaScript.

    – genérico

    9 de enero de 2012 a las 16:08

  • Si tan solo hubiera una manera de escribir javascript en código jquery en alguna parte…

    – Konerak

    9 de enero de 2012 a las 16:08

  • ¿Quieres una cadena sin la tilde o una matriz con ‘uno’ y ‘dos?

    – codificador js

    9 de enero de 2012 a las 16:08

  • @dotweb: Quiere recortar el ~ desde el final de la cuerda.

    – genérico

    9 de enero de 2012 a las 16:09

  • Ah, lo pasé por alto arrastrando. 🙂

    – codificador js

    9 de enero de 2012 a las 16:11

avatar de usuario
gabriele petrioli

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

Descripción: elimina los espacios en blanco del principio y el final de una cadena.


Necesitas

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

Esto eliminará todo el final ~.

Asi que one~two~~~~~ también se convertiría one~two

  • Esto eliminará ~ al principio también, pero solo si hay un ~ al final.

    – Armín

    9 de enero de 2012 a las 16:12

  • @Armin: No, no lo hará. Coincide con uno o más ~ seguido del final de la cadena.

    – genérico

    9 de enero de 2012 a las 16:14

  • @armin, no, no lo hará debido a la $ al final. Esto significa que la serie de ~ debe estar al final de la cadena..

    – Gabriele Petrioli

    9 de enero de 2012 a las 16:14

  • Lo he probado mal (con bandera global). ¡Lo siento! Linda expresión 🙂

    – Armín

    9 de enero de 2012 a las 16:15

  • @Armin, no hay problema.. aunque no quitará el protagonista ~ con bandera global tampoco 🙂 Probablemente te perdiste el $ al probar..

    – Gabriele Petrioli

    9 de enero de 2012 a las 16:17


Simplemente use el reemplazo de javascript para cambiar la última cadena en nada:

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

avatar de usuario
Javid

En mi opinión, esta es la mejor manera de hacer un recorte a la derecha/izquierda y, por lo tanto, tener una funcionalidad completa para recortar (ya que JavaScript admite string.trim de 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 + "]*"), '');
};

Ejemplo de uso:

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 ~"

PD Si está especificando un parámetro para rtrim o ltrim, asegúrese de usar una cadena compatible con expresiones regulares. Por ejemplo, si quieres hacer un rtrim por [, you should use: somestring.rtrim('\\[')
If you don’t want to escape the string manually, you can do it using a regex-escape function if you will. See the answer here.

One option:

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

long way around it .. and it jsut strips the last character .. not the tilde specifically..

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

This will delete the last character in the string. Is that what you wanted?

user avatar
karim79

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

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring

user avatar
ShankarSangoli

You can use substring javascript method.

Try this

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

  • This will trim any character off the end of the input string, not only a ~ as requested.

    – Rylab

    Dec 4, 2014 at 19:50

¿Ha sido útil esta solución?