0
votes

Autoriser uniquement des lettres anglaises sans espaces ni numéro?

J'ai besoin de rendre mon texte d'entrée accepter simplement une lettre anglaise sans espaces ni chiffre, ni ne peut copier et coller dedans!

J'ai essayé ce code et que cela fonctionne, mais lorsque je copierais et coller quelque chose d'en dehors de la valeur. : xxx

Comment puis-je ne pas autoriser pas copier et coller la valeur hors entrée?

N'hésitez pas à utiliser jQuery ou pur js


5 commentaires

En ajoutant changer à l'auditeur?


Eh bien, votre code ne regarde que la dernière lettre. Cela échouerait également si l'utilisateur déplaçait le curseur sur un endroit différent de la zone de texte et dactylographiés.


@epascarello ohh c'est juste !! Avez-vous des pls résolvés?


const regex = / ^ [a-z] + $ / i


Cela a été fermé comme une dupe d'une question et de réponse à la fois spécifiquement de la bibliothèque de réaction. Étant donné que cette question n'a rien à voir avec réagir, il devrait être rouvert que s'il y a une dupe plus appropriée là-bas ...


4 Réponses :


0
votes

Votre solution ne concerne que un caractère.

On dirait que vous voulez simplement filtrer tous les caractères qui ne répondent pas aux critères. Dans ce cas, vous pouvez utiliser Array Filtre code> Méthode comme SO: P>

const regex = /[A-Za-z]/;

function validate(e) {
    const chars = e.target.value.split('');
    e.target.value = chars.filter(function(char) {
        return regex.test(char);
    }).join('');
}

document.querySelector('#inputTextBox').addEventListener('input', validate);


2 commentaires

Pourquoi réinventer une simple regex?


@epascarello n'est pas sûr de ce que vous voulez dire. Vous parlez-vous au regex remplacer la solution liée à l'un des commentaires? Il existe de nombreuses façons de résoudre tout problème donné. Ce n'est pas nécessairement la "meilleure" solution, mais le problème fondamental de la solution originale était un vs. beaucoup, et cette solution montre comment résoudre ce problème.



0
votes

Vous devez regarder Coller événement .

afin d'empêcher l'utilisateur de coller tout ce qui n'est pas autorisé

document.QuerySelector ('# INPUTTEXTBOXTBOX'). AddeventListener ('Coller', valider);

Vous pouvez réinitialiser la valeur de l'entrée après la validation.


1 commentaires

Poignées d'entrée Pâte. Le problème a été signalé dans des commentaires, je ne sais pas quelle copie a à voir avec elle.



0
votes

La boucle n'est pas vraiment nécessaire, vous pouvez utiliser match code>

p>

<input id="inputTextBox"/>


4 commentaires

Cool mais quand j'essaie d'écrire avec une autre langue est accepter et j'ai dit juste anglais


Coller ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ Å dans la zone de texte sans valeur, vous obtenez une erreur


Toute la solution permettra cela, vous devriez vérifier contre un dictionnaire anglais. En outre, Å n'est pas dans a-za-z regex


Vous réinventez également Remplacer ()



3
votes

Vous pouvez utiliser Oninput code> avec Remplacer code> pour limiter l'entrée comme suit:

p>

<input type="text" oninput="this.value=this.value.replace(/[^a-z]/gi,'')">


0 commentaires