Diviser des chaînes en JavaScript tout en préservant les délimiteurs
Lorsque vous essayez de diviser une chaîne à l'aide d'un délimiteur en JavaScript à l'aide de la méthode split(), il est Il est courant de perdre le délimiteur dans le tableau résultant. Pour résoudre ce problème, envisagez les solutions suivantes :
Par exemple, étant donné la chaîne :
var string = "aaaaaa<br /><br />bbbb<br /><br />cccc"
Nous souhaitons diviser cette chaîne à l'aide du délimiteur
suivi d'un caractère spécial. L'utilisation de l'expression /
?[a-zA-Z0-9] ;/g peut ne pas conserver le délimiteur.
Pour conserver le délimiteur, envisagez d'utiliser les variantes suivantes :
Capturer le Délimiteur :
string.split(/(<br \/>)/g);
Cette expression utilise des parenthèses pour capturer le délimiteur, garantissant qu'il reste dans le tableau résultant.
Avis positif :
string.split(/(?=</g);
Cette expression divise la chaîne à chaque position où le délimiteur est au à droite, mais ne capture pas le délimiteur lui-même.
Lookahead négatif :
string.split(/(?!</g);
Cette expression divise la chaîne à chaque position où le délimiteur n'est pas à droite, en conservant le délimiteur dans le résultat tableau.
Alternativement, pour une approche plus personnalisée, vous pouvez utiliser l'expression suivante :
string.split(/(.*?<br \/>)/g);
Cette expression capture tout jusqu'au délimiteur inclus, en supprimant uniquement le caractère spécial.
Notez que certaines expressions ne peuvent diviser que des caractères uniques. Dans de tels cas, des alternatives telles que les suivantes peuvent être utilisées :
// Keep slashes after directories var str = 'Animation/rawr/javascript.js'; var tokens = str.match(/[^\/]+\/?|\//g);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!