RTrim en javascript

J'ai un problème avec l'ajustement de jQuery. J'ai une chaîne dans jQuery:

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

Comment couper le tilde de démarrage?

La méthode .trim() de jQuery se réfère à l'espace blanc ..

Description : Supprimez les espaces blancs du début et de la fin d'une chaîne.


Vous avez besoin

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

Cela supprimera tout le résultat ~ .

Donc one~two~~~~~ deviendrait également one~two

Utilisez simplement le remplacement javascript pour changer la dernière chaîne en rien:

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

Une option:

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

Long chemin autour de lui .. et il jsut strips le dernier personnage … pas le tilde spécifiquement …

IMO, c'est la meilleure façon de faire une garniture droite / gauche et, par conséquent, avoir une fonctionnalité complète pour la coupe (puisque javascript supporte string.trim mode natif)

 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 + "]*"), ''); }; 

Exemple d'utilisation:

 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 vous spécifiez un paramètre pour rtrim ou ltrim , assurez-vous d'utiliser une chaîne compatible regex. Par exemple, si vous souhaitez effectuer un rtrim par [ , vous devez utiliser: somestring.rtrim('\\[')

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

Cela supprimera le dernier caractère dans la chaîne. Est-ce ce que vous vouliez?

Vous pouvez utiliser la méthode javascript substring .

Essaye ça

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