L'exemple de cet article décrit comment js détermine si une chaîne contient une sous-chaîne. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Dans notre développement front-end quotidien, nous rencontrons souvent le problème de déterminer si une chaîne contient une certaine sous-chaîne. Nous allons explorer ici quelques méthodes pour résoudre cette exigence et les utiliser correctement. Idéalement, ce que nous recherchons est une méthode qui correspond à notre objectif (si x contient y) et renvoie vrai ou faux.
1. String.prototype.indexOf et String.prototype.lastIndexOf
Ces deux méthodes sont peut-être les plus simples auxquelles nous pensons. Si elle contient une sous-chaîne, elle renverra un index supérieur ou égal à 0, sinon elle renverra -1, ce qui ne répond pas à notre situation idéale.
var str = "Mon nom de blog est Benjamin-Focus sur le front-end développement et expérience utilisateur",
substr = "Benjamin";
function isContains(str, substr) {
Renvoie str.indexOf(substr) >= 0;
>
//vrai
console.log(isContains(str, substr));
2. String.prototype.search
Nous avons pensé à la méthode String.prototype.search Puisque le paramètre de la méthode de recherche est une expression régulière, c'est la même chose que indexOf.
var str = "Mon nom de blog est Benjamin-Focus sur le front-end développement et expérience utilisateur",
substr = "Benjamin";
function isContains(str, substr) {
Renvoie un nouveau RegExp(substr).test(str);
>
//vrai
console.log(isContains(str, substr));
Cette méthode est meilleure que la méthode indexOf. Cette méthode renvoie directement vrai ou faux. En même temps, le test du nom de la méthode est plus sémantique que indexOf.
3. String.prototype.contains
var str = "Mon nom de blog est Benjamin-Focus on développement front-end et expérience utilisateurs",
substr = "Benjamin";
function isContains(str, substr) {
Renvoie str.contains(substr);
>
//vrai
console.log(isContains(str, substr));
Cette méthode n'est actuellement prise en charge que par Firefox et figure toujours dans la version préliminaire d'ECMAScript 6. Cette méthode satisfait à la situation idéale mentionnée ci-dessus. Veuillez
cliquer ici pour plus de détails. Si vous souhaitez utiliser la méthode contain, vous pouvez vous référer à la bibliothèque tierce string.js Cliquez ici pour télécharger string.js
depuis ce site. Implémentation du code source :
contient : fonction(ss) {
Renvoie this.s.indexOf(ss) >= 0;
},
D'autres méthodes sont à ajouter. . .
Bien sûr, en ce qui concerne les problèmes de performances, quelle méthode est la plus rapide reste à tester. Les amis intéressés voudront peut-être le tester eux-mêmes.
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.