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?
string1 = string1.substring(0, string1.length - 1);
https://developer.mozilla.org/fr/JavaScript/Reference/Global_Objects/String/substring
Vous pouvez utiliser la méthode javascript substring
.
Essaye ça
var string1 = "one~two~"; string1 = $.trim(string1).substring(0, string1.length -1);