Table des matières
1. Construction de la structure HTML
2. JavaScript implémente le filtrage et le comptage des nombres
3. Explication détaillée de la logique de base
4. Précautions et optimisation
Maison interface Web tutoriel HTML JavaScript implémente le filtrage et le comptage automatique des numéros de téléphone mobile dans les champs de texte de formulaire

JavaScript implémente le filtrage et le comptage automatique des numéros de téléphone mobile dans les champs de texte de formulaire

Aug 13, 2025 pm 09:57 PM

JavaScript implémente le filtrage et le comptage automatique des numéros de téléphone mobile dans les champs de texte de formulaire

Cet article détaille comment filtrer et conserver les numéros de téléphone mobile qui répondent à un format spécifique (tel que 10 chiffres) en temps réel dans le champ texte d'un formulaire Web, et à mettre à jour dynamiquement le nombre total de numéros. L'écoute des événements d'entrée et de collage des utilisateurs via JavaScript, combinée à des expressions régulières pour la vérification et le nettoyage des nombres, fournit une solution frontale efficace et conviviale, en évitant la cumbersomeness du filtrage manuel et en garantissant la précision des formats de données.

Dans le scénario où les utilisateurs lancent des numéros de téléphone mobile ou coller les numéros de téléphone mobile via des champs de texte, il est souvent nécessaire de formater le numéro entré, tel que la conservation des numéros numériques purs avec un nombre spécifique et le comptage du nombre de nombres valides en temps réel. Cela améliore non seulement l'expérience utilisateur, mais assure également initialement la précision des données. Cet article fournira une solution basée sur HTML et JavaScript pour réaliser le filtrage automatique et le comptage des numéros de téléphone mobile dans les champs de texte.

1. Construction de la structure HTML

Tout d'abord, nous avons besoin d'une structure de formulaire HTML qui contient des champs de texte et des boîtes d'entrée qui affichent le nombre de nombres.

 
Numéro de mobile
form>

Dans cette structure:

  • Mobileno est un champ de texte utilisé pour entrer un numéro de téléphone portable.
  • NumberCount est une boîte d'entrée en lecture seule qui affiche le nombre de numéros de téléphone mobile valides.

2. JavaScript implémente le filtrage et le comptage des nombres

La logique principale réside dans JavaScript. Nous écouterons les événements d'entrée dans le champ de texte et effectuerons immédiatement des opérations de filtrage et de comptage lorsque l'utilisateur entre ou collet le contenu.

 <cript>
    document.addeventListener ('DomContentloaded', function () {
        const MobileNumbersTextArea = document.QuerySelector ('# mobileno');
        const NumberCountInput = document.QuerySelector ('# NumberCount');

        / **
         * Traiter le contenu du champ de texte, filtre 10 numéros numériques purs et compter de mise à jour * /
        fonction processMobileNumbers () {
            Soit RawInput = MobileNumbersTextArea.Value;
            // divisé par ligne et filtre les lignes vides Laisse les lignes = RawInput.split ('\ n'). Map (line => line.trim ()). Filter (line => line! == '');

            Soit ValidNumbers = [];
            const TendigitNumberRegex = / ^ \ d {10} $ /; // correspond aux lignes numériques à 10 chiffres exacts.ForEach (num => {
                if (TendiGitNumberRegex.Test (num)) {
                    validnumbers.push (num);
                }
            });

            // supprimer les nombres valides en double (facultatif, mais recommandé)
            const UniQuevalidNumbers = [... nouveau set (validnumbers)];

            // Mette à jour le contenu du champ de texte, seuls les nombres valides sont conservés, un mobileNumbersTextArea.value = uniquevalidnumbers.join ('\ n');
            // Mise à jour du nombre de nombres NumberCountInput.Value = UniQuevalidNumbers.Length;
        }

        // Écoutez les événements d'entrée pour réaliser un traitement en temps réel // L'événement d'entrée déclenchera MobileNumbersTextArea.addeventListener («entrée», processMobileNumbers);

        // Exécuter une fois lorsque la page est chargée pour traiter le contenu initial (si le champ de texte a une valeur prédéfinie)
        processMobileNumbers ();
    });
</cript>

3. Explication détaillée de la logique de base

  1. Acquisition des éléments DOM : Tout d'abord, les références DOM au champ de texte (#MobileNo) et le case d'entrée (#NumberCount) sont obtenues via Document.QuerySelector.
  2. ProcessMobileNumbers Fonction : Il s'agit de la fonction de traitement de base, responsable des tâches suivantes:
    • Obtenez l'entrée d'origine : MobileNumbersTextArea.Value obtient le contenu actuel du champ de texte.
    • Split and Clean by Line : RawInput.split ('\ n') diviser le contenu en un tableau par pause de ligne. map (line => line.trim ()) supprime les espaces de début et de fin sur chaque ligne. Filtre (line => line! == '') Supprime la ligne blanc traitée.
    • Vérification de l'expression régulière : const TendigitNumberRegex = / ^ \ d {10} $ /; définit une expression régulière.
      • ^ Faites correspondre le début de la chaîne.
      • \ d Faites correspondre n'importe quel nombre (0-9).
      • {10} correspondent exactement à l'élément précédent 10 fois.
      • $ correspond à la fin de la chaîne. Cette expression régulière garantit que le nombre doit être et n'est que de 10 chiffres et ne contient aucun autre caractères (tels que des espaces, plus des signes, etc.).
    • Nombres valides de filtre : traversez chaque ligne et utilisez TendiGitNumberRegex.test (NUM) pour vérifier si la ligne répond au format à 10 chiffres. Les nombres qui répondent aux critères sont ajoutés au tableau des nombres valides.
    • Le traitement de déduplication (recommandé) : [... nouveau set (validNumbers)] est une syntaxe JavaScript concise pour créer un nouveau tableau contenant tous les éléments non dupliqués dans le tableau ValidNumbers. Cela peut éviter les dénombrements répétés lorsque l'utilisateur colle des nombres en double.
    • Field de texte de mise à jour : mobileNumbersTextArea.value = uniquevalidnumbers.join ('\ n'); Connectez les nombres valides après filtrage et déduplication avec les pauses de ligne, et réinitialisez le champ de texte, nettoyant ainsi automatiquement les nombres qui ne sont pas conformes au format.
    • Count de mise à jour : NumberCountInput.Value = UniQuevalidNumbers.Length; Met à jour la longueur du tableau de numéros valide dans la zone d'entrée de comptage.
  3. Écoute d'événements : mobileNumbersTextArea.AddeventListener («entrée», processMobileNumbers); Liez la fonction ProcessMobileNumbers à l'événement d'entrée dans le champ de texte. Cela signifie que chaque fois que le contenu du champ de texte change (qu'il s'agisse de taper, de supprimer ou de coller), la fonction est exécutée immédiatement, permettant des commentaires en temps réel.
  4. Traitement d'initialisation : processMobileNumbers (); Exécute une fois immédiatement après le chargement de la page, au cas où le champ de texte a des valeurs prédéfinies en HTML, garantissant le comptage et le nettoyage corrects de l'état initial.

4. Précautions et optimisation

  • Sélection d'événements :
    • L'événement d'entrée est le meilleur choix pour gérer les modifications du contenu du domaine de texte. Il couvre diverses façons de modifier le contenu tel que la saisie des utilisateurs, la collage, la coupe, la glisser-déposer, et offre une expérience utilisateur en temps réel.
    • L'événement KEYUP n'est déclenché que lorsque la clé est libérée et que les opérations de panneaux non clé telles que le collage ne peuvent pas être capturées.
    • L'événement Mouseout (comme indiqué dans la réponse d'origine à la question) est déclenché lorsque la souris est déplacée de l'élément, ce qui peut conduire à une mauvaise expérience utilisateur car l'utilisateur doit déplacer la souris hors du champ de texte pour voir les résultats et n'est pas recommandé.
    • L'événement de pâte peut être spécialement géré pour les opérations de pâte, mais généralement l'événement d'entrée est suffisant.
  • Expression régulière : ^ \ d {10} $ est une correspondance numérique pure 10 bits très précise. Si vous devez prendre en charge les codes de domaine internationaux ou les formats de numéro de téléphone mobile plus complexes, vous devez ajuster l'expression régulière. Par exemple, si vous permettez de commencer par un nombre, suivi d'un nombre, vous avez besoin de règles plus complexes.
  • Expérience utilisateur : le nettoyage et le comptage en temps réel peuvent améliorer considérablement l'expérience utilisateur. Les utilisateurs peuvent voir instantanément quels numéros sont valides et lesquels ont été supprimés.
  • Vérification côté serveur : Bien que la vérification frontale offre une bonne expérience utilisateur, assurez-vous de vérifier à nouveau le côté serveur . La vérification frontale est facilement contournée et la vérification côté serveur est la dernière ligne de défense pour la sécurité et l'intégrité des données.
  • Conseils d'erreur : Dans des applications plus complexes, vous pouvez envisager de fournir des commentaires visuels ou des invites à l'utilisateur lorsqu'un numéro non valide est supprimé, indiquant quels chiffres ne répondent pas aux exigences.

Grâce aux méthodes ci-dessus, nous pouvons gérer et vérifier efficacement les numéros de téléphone mobile entrés par les utilisateurs dans le champ de texte, assurer la précision des données et améliorer l'expérience utilisateur globale.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Commentant le code en php
4 Il y a quelques semaines By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
3 Il y a quelques semaines By Jack chen
Conseils pour écrire des commentaires PHP
4 Il y a quelques semaines By 百草

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1510
276
Le `` vs `` en html Le `` vs `` en html Jul 19, 2025 am 12:41 AM

Il s'agit d'un élément au niveau du bloc, utilisé pour diviser de grandes zones de contenu de bloc; Il s'agit d'un élément en ligne, adapté à l'emballage de petits segments de fragments de texte ou de contenu. Les différences spécifiques sont les suivantes: 1. Occuper exclusivement une ligne, une largeur et une hauteur, des marges intérieures et extérieures peuvent être définies, qui sont souvent utilisées dans des structures de mise en page telles que les en-têtes, les barres latérales, etc.; 2. N'enveloppez pas les lignes, n'occupez que la largeur du contenu et sont utilisés pour le contrôle du style local tel que la décoloration, le gras, etc.; 3. En termes de scénarios d'utilisation, il convient à l'organisation de mise en page et de structure de la zone globale, et est utilisé pour les ajustements de style à petite échelle qui n'affectent pas la disposition globale; 4. Lors de la nidification, il peut contenir des éléments et les éléments au niveau du bloc ne doivent pas être imbriqués à l'intérieur.

Ressources de précharge avec html `lien rel =' preload '` Ressources de précharge avec html `lien rel =' preload '` Jul 19, 2025 am 12:54 AM

LinkRel = "Preload" est une technologie qui optimise les performances de chargement de page et est utilisée pour charger les ressources critiques à l'avance. Son objectif principal est de hiérarchiser le chargement des ressources essentielles au rendu de l'écran d'accueil, telles que les polices, les clés CSS / JS et les images d'écran d'accueil. Faites attention à l'utilisation: 1. Définissez correctement l'attribut AS pour spécifier le type de ressource; 2. Évitez les abus et empêchez une utilisation excessive de la bande passante; 3. Assurez-vous que les ressources seront réellement utilisées, sinon elle entraînera un gaspillage de demandes; 4. Ajouter un attribut de crossorigin aux ressources inter-domaines. Une méthode d'écriture incorrecte telle que l'absence d'attribut AS entraînera une précharge invalide. L'utilisation rationnelle peut améliorer l'efficacité du chargement des pages, sinon elle peut être contre-productive.

Tags HTML essentiels pour les débutants Tags HTML essentiels pour les débutants Jul 27, 2025 am 03:45 AM

Pour commencer rapidement avec HTML, il vous suffit de maîtriser quelques balises de base pour créer un squelette Web. 1. La structure de la page est essentielle et, qui est l'élément racine, contient des méta-informations et est la zone d'affichage du contenu. 2. Utilisez le titre. Plus le niveau est élevé, plus le nombre est petit. Utilisez des balises pour segmenter le texte pour éviter de sauter le niveau. 3. Le lien utilise des balises et correspond aux attributs HREF, et l'image utilise des balises et contient des attributs SRC et Alt. 4. La liste est divisée en listes non ordonnées et listes commandées. Chaque entrée est représentée et doit être imbriquée dans la liste. 5. Les débutants n'ont pas à forcer la mémorisation de toutes les balises. Il est plus efficace de les écrire et de les vérifier pendant que vous écrivez. Maître la structure, le texte, les liens, les images et les listes pour créer des pages Web de base.

Concepts Shadow Dom et intégration HTML Concepts Shadow Dom et intégration HTML Jul 24, 2025 am 01:39 AM

Shadowdom est une technologie utilisée dans la technologie des composants Web pour créer des sous-arbres DOM isolés. 1. Il permet la monture d'une structure DOM indépendante sur les éléments HTML ordinaires, avec ses propres styles et comportements, et n'affecte pas le document principal; 2. Créé via JavaScript, comme l'utilisation de la méthode attachshadow et la définition du mode à ouvrir; 3. Lorsqu'il est utilisé en combinaison avec HTML, il a trois caractéristiques principales: la structure claire, l'isolement de style et la projection de contenu (fente); 4. Les notes incluent le débogage complexe, le contrôle de la portée du style, les frais généraux de performances et les problèmes de compatibilité du cadre. En bref, Shadowdom fournit des capacités d'encapsulation natives pour construire des composants d'interface utilisateur réutilisables et non polluants.

Pouvez-vous mettre une balise  dans une autre balise ? Pouvez-vous mettre une balise dans une autre balise ? Jul 27, 2025 am 04:15 AM

❌oucannotnesttagssisideanothertagbecauseit’sinvalidhtml; browsersautomatiquematethethefirstbeforeOpiningtheenxt, résultant de laparateParagraphs.

Tag de style HTML: en ligne vs CSS interne Tag de style HTML: en ligne vs CSS interne Jul 26, 2025 am 07:23 AM

La méthode de placement de style doit être sélectionnée selon la scène. 1. En ligne convient à la modification temporaire des éléments uniques ou du contrôle JS dynamique, tels que la couleur du bouton change avec le fonctionnement; 2. CSS interne convient aux projets avec quelques pages et une structure simple, ce qui est pratique pour la gestion centralisée des styles, tels que les paramètres de style de base des pages de connexion; 3. La priorité est donnée à la réutilisation, à la maintenance et aux performances, et il est préférable de diviser les fichiers CSS de liaison externe pour les grands projets.

Utilisation de l'attribut HTML `Télécharger 'pour les liens Utilisation de l'attribut HTML `Télécharger 'pour les liens Jul 17, 2025 am 03:57 AM

TheHTMLdownloadattributeallowsuserstodownloadfilesdirectlyfromalinkbyusingthetag.Toimplementit,adddownloadtotheanchortag,suchasDownloadPDF,orspecifyacustomfilenamelikeDownloadasmy-document.pdf.1.Itworksbestwithsame-originURLsandcommonfiletypeslikePDF

Quelle est l'attribut de nom dans une balise d'entrée? Quelle est l'attribut de nom dans une balise d'entrée? Jul 27, 2025 am 04:14 AM

ThenameattributeinaninputTagisUsesedToentifyyInput whentheformmissubmited; itSasaTheKeyInTheKey-ValuepairsentTotheServer, WhereTheUser'sinputisthevalue.1.Wenaformmissubmited, thereAmatTrributeBeCheseke

See all articles