web-dev-qa-db-fra.com

Comment supprimer le premier et le dernier caractère d'une chaîne

Je me demande comment supprimer le premier et le dernier caractère d'une chaîne en Javascript.

Mon URL montre /installers/ et je veux juste installers.

Parfois ce sera /installers/services/ et j’ai juste besoin de installers/services.

Donc, je ne peux pas tout simplement effacer les barres obliques /.

137
Peanut

Voici

var yourString = "/installers/";
var result = yourString.substring(1, yourString.length-1);

console.log(result);

Ou vous pouvez utiliser .slice comme suggéré par Anka Gupta

var yourString = "/installers/services/";

var result = yourString.slice(1,-1);

console.log(result);

Documentation pour les tranche et sous-chaîne .

299
Dieterg

Il peut être plus agréable d’utiliser une tranche comme:

string.slice(1, -1)
109
Ankit Gupta

Je ne pense pas que jQuery a quelque chose à voir avec cela. Quoi qu'il en soit, essayez ce qui suit:

url = url.replace(/^\/|\/$/g, '');
12
leaf

Vous pouvez le dire:

"string".replace(/^\/?|\/?$/, "")
"/installers/services/".replace(/^\/?|\/?$/, "") // -> installers/services

La regex a expliqué:
- Première barre oblique optionnelle: ^/?, échappé -> ^\/? (le ^ signifie le début de la chaîne)
- Le tuyau (|) peut être lu comme or
- Plus que la barre oblique à la fin -> /?$, échappé -> \/?$ (le $ signifie la fin de la chaîne)

Combiné, ce serait ^/?|/$ sans s'échapper. Première barre oblique optionnelle OR dernière barre oblique optionnelle

6
Martijn

Vous pouvez faire quelque chose comme ça:

"/installers/services/".replace(/^\/+/g,'').replace(/\/+$/g,'')

Cette expression régulière est un moyen courant d’avoir le même comportement que la fonction trim utilisée dans de nombreuses langues.

Une implémentation possible de la fonction trim est:

function trim(string, char){
    if(!char) char = ' '; //space by default
    char = char.replace(/([()[{*+.$^\\|?])/g, '\\$1'); //escape char parameter if needed for regex syntax.
    var regex_1 = new RegExp("^" + char + "+", "g");
    var regex_2 = new RegExp(char + "+$", "g");
    return string.replace(regex_1, '').replace(regex_2, '');
}

Ce qui supprimera tous les / au début et à la fin de la chaîne. Il gère les cas comme ///installers/services///

Vous pouvez aussi simplement faire:

"/installers/".substring(1, string.length-1);
2
OlivierH

Vous pouvez utiliser la méthode substring

s = s.substring(0, s.length - 1) //removes last character

une autre alternative est la méthode slice

1
Hessam

si vous avez besoin de retirez le premier leter de la chaîne

string.slice(1, 0)

et pour enlever la dernière lettre

string.slice(0, -1)
0
Rizo

utiliser .replace(/.*\/(\S+)\//img,"$1")

"/installers/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services

"/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services