String substring() gauche droite left right extraire

../aubade/lecon-139.jpg

Editée le : 2020-04-22

String.substring()

cette instruction permet d'extraire tout ou partie d'une chaine de caractères.

Table des matières ici

Considérons les chaines de caractères suivante:

Extraction avec String.substring()

Expression attendu

code js associé

Résultats

Commentaires

extraire les n caractères à gauche.

var left =  chaine.substring(0, 3) ;

expected output: "Moz";
les 3 premiers caractères à gauche depuis la position 0 incluse à la position 3 exclue.

extraire les n caractères à droite.

var right =  chaine.substring(chaine.length-3) ;

expected output: "lla";
les 3 derniers caractères à droite

extraire les caractères entre 2 bornes.

var borne = chaine.substring(1, 3) ;  

expected output: "oz";
caractères entre position 1 incluse à position 3 exclue

Tous les caractères à droite de la position p.

var right_of =  chaine.substring(2); //

expected output: "zilla";
caractères depuis position 2 inclue jusqu'à la fin de la chaine
si n caractères souhaiter faire:
right_of = chaine.substring(2, 2 + n )  ;

extraire n caractères depuis la position p.

var right_of =  chaine.substring(2, 2+2); //

expected output: "zi";

extraire les caractères à gauche d'une sous-chaine.

var left$ =  chaine.substring( 0, chaine.indexOf(debut) );

 expected output: "Mo";
les premiers caratères à gauche avant la sous-chaine debut

extraire les caractères à doite d'une sous-chaine.

var right$ = chaine.substring( chaine.indexOf(fin) + fin.length );

expected output: "a";
les derniers caratères à droite de la sous-chaine fin

extraire les caractères situés entre 2 sous-chaines.

var borne$ = chaine.substring( chaine.indexOf(debut) + 1, chaine.indexOf(fin) ); alert( borne$ );//

 expected output: "i";

 

 

 

 

 

Extraction avec String.slice()

Expression attendu

code js associé

Résultats

Commentaires

extraire les n caractères à gauche.

var left =  chaine.slice(0, 3) ;

expected output: "Moz";
les 3 premiers caractères à gauche depuis la position 0 incluse à la position 3 exclue.

extraire les n caractères à droite.

var right =  chaine.slice(chaine.length-3) ;
var right =  chaine.slice(-3) ;

expected output: "lla";
les 3 derniers caractères à droite

extraire les caractères entre 2 bornes.

var borne = chaine.slice(1, 3) ;  

expected output: "oz";
caractères entre position 1 incluse à position 3 exclue

Tous les caractères à droite de la position p.

var right_of =  chaine.slice(2); //

expected output: "zilla";
caractères depuis position 2 inclue jusqu'à la fin de la chaine
si n caractères souhaiter faire:
right_of = chaine.slice(2, 2 + n )  ;

extraire n caractères depuis la position p.

var right_of =  chaine.slice(2, 2+2); //

expected output: "zi";

extraire les caractères à gauche d'une sous-chaine.

var left$ =  chaine.slice( 0, chaine.indexOf(debut) );

 expected output: "Mo";
les premiers caratères à gauche avant la sous-chaine debut

extraire les caractères à droite d'une sous-chaine.

var right$ = chaine.slice( chaine.indexOf(fin) + fin.length );

expected output: "a";
les derniers caratères à droite de la sous-chaine fin

extraire les caractères situés entre 2 sous-chaines.

var borne$ = chaine.slice( chaine.indexOf(debut) + 1, chaine.indexOf(fin) ); alert( borne$ );//

 expected output: "i";

 

 

 

 

 

Différences entre slice() vs substring()

https://stackoverflow.com/questions/2243824/what-is-the-difference-between-string-slice-and-string-substring

 

 slice()

substring()

Commentaires

si start > stop

var borne = chaine.slice(3, 1) ;
var borne = chaine.substring(3, 1) ;

  1. If start > stop, then substring will swap those 2 arguments.
  2. If start > stop, slice() will return the empty string. ("")

start négatif

var borne = chaine.slice(-1, 3) ;
var borne = chaine.substring(-1, 3) ;

 

 

  1. If either argument is negative or is NaN, substring is treated as if it were 0.
  2. If start is negative: slice() sets char from the end of string, exactly like substr() in Firefox. This behavior is observed in both Firefox and IE.

stop négatif

var borne = chaine.slice(1, -1) ;
 var borne = chaine.substring(1, -1) ;

 

 

  1. If either argument is negative or is NaN, substring is treated as if it were 0.
  2. If stop is negative: slice() sets stop to: string.length – Math.abs(stop) (original value), except bounded at 0 (thus, Math.max(0, string.length + stop)) as covered in the ECMA specification.

un seul item négatif

var borne = chaine.slice(-2) ;
var borne = chaine.substring(-2) ;

  1. If either argument is negative or is NaN, substring is treated as if it were 0.
  2. If start is negative: slice() sets char from the end of string, exactly like substr() in Firefox. This behavior is observed in both Firefox and IE

stop > chaine.length

var borne = chaine.slice(3, 10) ;
 var borne = chaine.substring(3, 10) ;

 stop = chaine.length

 A ce stade pour pour des raison essentiellement mémo thecniques, nous préfèrerons substring() à slice();

slice() sera plutôt réservée aux Array;

 

Compatibilité de la page web

Méthode

../images/idea.png ../images/warning.gif ../images/stop.png ../images/sensinterdit.png ../images/danger.png

../images/firefox_22.gif

Firefox: 52 et +

../images/ie_22.gif

Edge

../images/chrome_22.gif

Chrome: 60 et +

../images/opera_22.gif

Opéra: 49 et +

../images/ie_22.gif

IE8 non testé; IE8 nécessite ../cnx_oldIE/cnx.oldIE.js

../images/safari_22.gif

Safari non testé

Vous pouvez charger la bibliothèque cnx() comme ceci entre vos balises <head>
<script src="../dossier/cnx.version.js"></script>
Dossier est le nom du répertoire où vous avez placé le fichier cnx; et cnx.version.js le nom de ce fichier.
Pour nous contacter: claudecnx@blanquefort.net