Chaîne JavaScript

Chaînes JavaScript

Vue d'ensemble
Les chaînes sont presque partout dans JavaScript lorsque vous traitez les données d'entrée de l'utilisateur, lors de la lecture Lors de l'obtention ou de la définition des propriétés du DOM. objets, lors de la manipulation de cookies, et bien sûr bien plus encore... La partie centrale de JavaScript fournit un ensemble de propriétés et de méthodes pour les opérations courantes sur les chaînes, telles que le fractionnement de chaînes, la modification de la casse des chaînes, l'exploitation de sous-chaînes, etc.
La plupart des navigateurs actuels peuvent également bénéficier de la puissance des expressions régulières, car cela simplifie grandement un grand nombre de tâches de manipulation de chaînes, mais cela nécessite également de surmonter une courbe d'apprentissage quelque peu abrupte. Ici, nous introduisons principalement certaines opérations sur la chaîne elle-même qui seront abordées dans les prochains essais.

Création de chaîne
Il existe plusieurs façons de créer une chaîne. Le plus simple consiste à mettre un ensemble de caractères entre guillemets, qui peuvent être affectés à une variable chaîne.
var myStr = "Hello, String!";
Vous pouvez utiliser des guillemets doubles ou simples pour encadrer la chaîne, mais sachez que la paire de guillemets qui délimitent la chaîne doit être la même et ne peut pas être mélangée.
Une déclaration du type var myString = "Fluffy est un joli chat.'; est illégale.
Permet l'utilisation de deux types de guillemets, rendant certaines opérations simples, comme l'intégration de l'un dans l'autre :

document.write("");

Nous avons créé plusieurs chaînes dans le script ci-dessus, mais en substance, ce ne sont pas de véritables objets chaîne. Pour être précis, ce sont des valeurs de type chaîne à créer. Objet, vous pouvez utiliser l'instruction suivante. : var strObj = new String("Bonjour, String!");

En utilisant l'opérateur typeof, vous constaterez que le type de myStr ci-dessus est une chaîne, et strObj Le type est un objet .


Si vous souhaitez connaître la longueur de la chaîne, utilisez sa propriété length : string.length Comment obtenir le caractère à la position spécifiée de la chaîne : string.charAt. (index);

Épissage de chaînes

Problème :
Épissage de deux chaînes ou plus en une seule grande chaîne
Solution :
Très simple, utilisez simplement un "+" pour "ajouter" deux chaînes :

var longString = "One piece " + "plus one more piece.";

Pour accumuler plusieurs chaînes en une seule chaîne, vous pouvez également utiliser l'opérateur "+=" :


var result = "";
result += "My name is Anders"
result += " and my age is 25";

Pour ajouter un caractère de nouvelle ligne à une chaîne, vous avez besoin pour utiliser le caractère d'échappement "n":

var confirmString = "You did not enter a response to the last " +        "question.\n\nSubmit form anyway?";var confirmValue = confirm(confirmString);

Mais cette méthode ne peut être utilisée que dans des situations telles que des avertissements et des boîtes de dialogue de confirmation. Si ce texte est présenté sous forme de contenu HTML, il sera invalide. Dans ce cas, utilisez "
" pour le remplacer : < 🎜. >

 var htmlString = "First line of string.
Second line of string.";
document.write(htmlString);

L'objet String fournit également la méthode concat(), qui remplit la même fonction que "+" :

string.concat(value1, value2, ...)
Cependant, concat ( ) n'est évidemment pas aussi intuitive et concise que "+".

Accéder à une sous-chaîne d'une chaîne

Question :
Obtenir une copie d'une partie d'une chaîne.
Solution :
Utilisez la méthode substring() ou slice() (NN4+, IE4+). Leur utilisation spécifique est expliquée ci-dessous.
Le prototype de substring() est : string.substring(from, to)
Le premier paramètre from spécifie la position de départ de la sous-chaîne dans la chaîne d'origine (le deuxième paramètre to est facultatif) ; . Il spécifie la position de fin de la sous-chaîne dans la chaîne d'origine (index basé sur 0). En général, elle doit être plus grande que from. Si elle est omise, la sous-chaîne ira jusqu'à la fin de la chaîne d'origine. .
Que se passera-t-il si le paramètre from est accidentellement plus grand que le paramètre to ? JavaScript ajustera automatiquement les positions de début et de fin de la sous-chaîne, c'est-à-dire que substring() commence toujours par le plus petit des deux paramètres et se termine par le plus grand. Notez cependant qu'il inclut le caractère à la position de départ, mais pas le caractère à la position de fin. Le prototype de

var fullString = "Every dog has his day.";
var section = fullString.substring(0, 4); // section is "Ever".
section = fullString.substring(4, 0);      // section is also "Ever".
section = fullString.substring(1, 1);      // section is an empty string.
section = fullString.substring(-2, 4);     // section is "Ever", same as fullString.substring(0, 4);

slice() est : string.slice(start, end)

Le paramètre start représente la position de départ de la sous-chaîne. nombre négatif, alors il peut Il s'agit du nombre du bas vers le début, par exemple -3 signifie à partir du troisième à partir du bas ; le paramètre end indique la position finale, comme start, il peut également s'agir d'un nombre négatif. , et sa signification signifie également le nombre de bas en bas. Les paramètres de slice() peuvent être des nombres négatifs, il est donc plus flexible que substring(), mais moins tolérant si start est plus grand que end, il renverra une chaîne vide (exemple omis).

Une autre méthode est substr(), dont le prototype est : string.substr(start, length)
À partir du prototype, vous pouvez voir la signification de ses paramètres start représente la position de départ et length représente la sous-chaîne. longueur. La norme JavaScript déconseille l'utilisation de cette méthode.
5. Conversion de casse de chaîne
Problème :
Il y a une zone de texte sur votre page pour recevoir les informations saisies par l'utilisateur, telles que la ville, et vous effectuerez ensuite un traitement différent en fonction de sa ville. être utilisé à ce stade, donc avant la comparaison, il est préférable d'effectuer une conversion de cas, de sorte que vous n'ayez besoin de considérer la situation qu'après la conversion ou que vous deviez collecter des données sur la page, puis stocker les données dans la base de données, et ; la base de données n'accepte que les caractères majuscules ; dans ces cas, nous devons tous envisager la conversion de la casse de la chaîne.
Solution :
Utilisez les méthodes toLowerCase() et toUpperCase() :

var city = "ShanGHai";
city = city.toLowerCase(); // la ville est désormais "shanghai".

Déterminez si deux chaînes sont égales
Problème :
Par exemple, vous souhaitez comparer la valeur d'entrée de l'utilisateur avec une chaîne connue
Solution :
Convertissez d'abord toutes les valeurs d'entrée de l'utilisateur en majuscules (ou minuscules), puis exécutez Compare :

var name = document.form1.txtUserName.value.toLowerCase();
if(name == "urname")
{
// les déclarations vont ici.
}

JavaScript a deux opérateurs d'égalité. L'un est entièrement rétrocompatible, standard "==". Si les deux types d'opérande sont incohérents, il effectuera automatiquement une conversion de type sur l'opérande à un moment donné. Considérez l'instruction d'affectation suivante :

var strA = "i. je t'aime!";
var strB = new String("je t'aime!");

Ces deux variables contiennent la même séquence de caractères, mais ont des types de données différents. La première est une chaîne et la ce dernier est un objet. Lors de l'utilisation de l'opérateur "==", JavaScript tentera diverses évaluations pour détecter si les deux seront égaux dans certaines circonstances. Ainsi, l'expression suivante est évaluée comme vraie : strA == strB.
Le deuxième opérateur est le "strict" "===", qui n'est pas si indulgent lors de l'évaluation et n'effectue pas de conversion de type. Ainsi, l'expression strA === strB est évaluée comme fausse, bien que les deux variables aient la même valeur.
Parfois, la logique du code vous oblige à déterminer si deux valeurs​​ne sont pas égales. Il existe également deux options ici : "!=" et strict "!==". Leur relation est similaire à "=". =" et "==" =".
Discussion :
"==" et "!=" feront de leur mieux pour trouver une correspondance de valeur lors de l'évaluation, mais vous souhaiterez peut-être toujours effectuer une conversion de type explicite avant la comparaison avec "help". Ils font le travail. Par exemple, si vous souhaitez déterminer si la valeur d'entrée (chaîne) d'un utilisateur est égale à un nombre, vous pouvez laisser "==" vous aider à terminer la conversion de type :
if(document.form1.txtAge.value == someNumericVar) { .. }
Vous pouvez également convertir à l'avance :
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
Si vous êtes plus habitué à langages de programmation fortement typés (tels que C#, Java, etc.), alors vous pouvez continuer votre habitude (conversion de type) ici, ce qui améliorera également la lisibilité du programme.

Il y a une chose à laquelle vous devez faire attention, ce sont les paramètres régionaux de l'ordinateur. Si vous utilisez "<" et ">" pour comparer des chaînes, JavaScript les compare en tant qu'Unicode, mais il est évident que les internautes ne lisent pas le texte en Unicode :) Par exemple en espagnol, selon le tri traditionnel, "ch " sera trié comme un caractère entre "c" et "d". localeCompare() fournit un moyen d'utiliser le classement de caractères des paramètres régionaux par défaut.

var strings; // Le tableau de chaînes à trier, en supposant qu'il a été initialisé
strings.sort(function(a,b) { return a.localeCompare(b) }); // Appelez la méthode sort() pour trier

Recherche de chaîne

Question :
Déterminer si une chaîne contient une autre chaîne.
Solution :
Utilisez la méthode indexOf() de la chaîne :
strObj.indexOf(subString[, startIndex])
strObj est la chaîne à juger, subString est la sous-chaîne à trouver dans strObj Chaîne, startIndex est facultatif, indiquant la position de départ de la recherche (index basé sur 0), si startIndex est omis, recherchez depuis le début de strObj, si startIndex est inférieur à 0, alors commencez à partir de 0, si startIndex est supérieur au index maximum, puis recherchez à partir de Démarrer à l'index maximum.
indexOf() renvoie la position de départ de subString dans strObj, s'il n'est pas trouvé, renvoie -1. Dans un script, vous pouvez l'utiliser comme ceci :

if(largeString.indexOf(shortString) != -1)
{
// S'il est inclus, gérez-le en conséquence
}

Longueur de chaîne

Vous pouvez utiliser la propriété intégrée length pour calculer la longueur d'une chaîne :

  var txt = "Hello World!";
document.write("" + txt.length + "");
var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write("" + txt.length + "");
Formation continue
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p id="demo"></p> <script> var x = "John"; // x 是字符串 var y = new String("John"); // y 是一个对象 document.getElementById("demo").innerHTML = x===y; </script> <p>=== 为绝对相等,即数据类型与值都必须相等。</p> </body> </html>
soumettreRéinitialiser le code
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!