Tout d'abord, j'ai vérifié les solutions possibles mais je n'ai pas trouvé de solution qui m'aide à résoudre mon problème. En bref, j'ai une logique existante qui reçoit le courrier électronique de l'utilisateur et teste quelques conditions, comme s'assurer qu'il n'y a pas d'apostrophe, de double signe et de points consécutifs, etc. La logique n'est pas implémentée avec regex.Restreindre l'acceptation d'un e-mail contenant des caractères non-anglais
Maintenant, j'ai une nouvelle exigence, nous devons empêcher l'utilisateur d'entrer des caractères non anglais, par restriction je veux dire essayer de l'attraper pendant que l'utilisateur entre un caractère non anglais ou l'attraper pendant que la valeur est passée à la fonction javascript autres conditions ci-dessus.
donc j'ai trouvé quelques réponses ici et les ont essayé: here
Voici mon code:
<input type="text" id="ctEmailAddress" name="ctEmailAddress" autocomplete="off"
size="40" maxlength="255" value="${userinfo.emailAddress}" oncopy="return false;" onpaste="return false;" onkeypress="suppressNonEng(event)">
et scénario:
function suppressNonEng(event){
var englishAlphabetAndWhiteSpace = /[A-Za-z ]/g;
var key = String.fromCharCode(event.which);
if (englishAlphabetAndWhiteSpace.test(key)) {
return true;
}
alert ("this is not in English");
return false;
}
J'utilise la fonction js de lien, il est séparé de la logique actuelle. Le problème est, il permet toujours de passer des caractères non anglais, par exemple français.
est de même pour cette fonction:
function suppressNonEng(event){
var key = event.which;
if(key > 128){
alert("Email address can be entered only in English. Please try again.");
}
}
Encore une fois, les lettres françaises ont aucun problème à aller à travers elle.
Ma question est, comment puis-je m'assurer que cette valeur est seulement des caractères anglais? Dois-je utiliser regex pour cela ou il y a une meilleure solution? Veuillez nous conseiller Merci.
Retirez le modificateur 'g' de la regex puisque vous êtes u chantez avec 'RegExp # test' –
Pourquoi avez-vous besoin d'empêcher de tels caractères non-anglais? De telles exigences me semblent très naïves et je ne vois pas ce que vous voudriez réaliser avec. –
@RaphaelMiedl caractères non anglais causent des problèmes dans notre base de données, j'ai besoin de développeurs seniors pour restreindre l'entrée des emails non anglais. – Foxy