Ich habe ein Eingabefeld, in das ein Benutzername eingegeben wird, aber wenn ungültige Zeichen eingegeben werden, möchte ich, dass ein Fehler auftritt. Der folgende Code ist das, was ich benutze; Was würde ich in den Abschnitt "etwas" setzen?
var numbers = new RegExp("SOMETHING");
$(this).removeClass("active");
if(($(this).val() == "") || $(this).val().match(numbers))
{
$("#firstNameErrorMsg").html("First name can only contain letters. ");
}
else
{
$("#firstNameErrorMsg").html("OK");
}
5 Antworten
Hier sind einige Muster, die ich vor langer Zeit geschrieben habe:
patt['name'] = /^[a-z ,-]+$/i;
patt['username'] = /^[A-z0-9_-]+$/i;
patt['email'] = /^[a-z0-9]+(?:[\.-]?[a-z0-9]+)*@[a-z0-9]+([-]?[a-z0-9]+)*[\.-]?[a-z0-9]+([-]?[a-z0-9]+)*([\.-]?[a-z]{2,})*(\.[a-z]{2,5})+$/i;
patt['website'] = /^http(s)?:\/\/(www\.)?[a-z0-9]+([-]?[a-z0-9]+)*[\.-]?[a-z0-9]+([-]?[a-z0-9]+)*([\.-]?[a-z]{2,})*(\.[a-z]{2,5})+$/i;
patt['age'] = /^(?:([1][3-9]|[2-9][0-9]))$/i;
patt['subject'] = /[a-z0-9?!:;'&_\. ,-]+/i;
Wenn Sie sie verwenden möchten, sollten Sie diese Bedingung überprüfen:
if(($(this).val() == "") || ! $(this).val().match(patt['name'])){ // in case.
...
}
Wenn Sie jedoch unerwünschte Zeichen überprüfen möchten, ist dies ein langes Muster für die Eingabe von username
.
Sushanth ist größtenteils korrekt, aber Sie müssen eine beliebige Anzahl von Buchstaben abgleichen, und es müssen von Anfang bis Ende nur Buchstaben sein, also sollten Sie so etwas tun
var name = new RegExp('^[A-Za-z]+$');
$(this).removeClass('active');
if($(this).val().match(name)) {
$('#firstNameErrorMsg').html('OK');
} else {
$('#firstNameErrorMsg').html('First name can only contain letters.');
}
Versuchen Sie diesen Regex
[A-Za-z]
Dies stimmt nur mit Klein- und Großbuchstaben überein
Dies sollte eine vollständige Implementierung dessen sein, was Sie versuchen:
var invalid = /[^A-Za-z]+/;
$(this).removeClass("active");
if($(this).val() == "" || invalid.test($(this).val()))
{
$("#firstNameErrorMsg").html("First name can only contain letters. ");
}
else
{
$("#firstNameErrorMsg").html("OK");
}
Schlagen Sie vor, dass Sie etwas über Regexes und experimentiere mit ihnen.
Um einfach Briefe und nichts anderes zu erhalten, tun Sie einfach:
^[a-zA-Z]+$
Dadurch können zwischen Start und Ende 1..n Klein- und Großbuchstaben gefunden werden, sonst nichts. Die Version von Sushanth stimmt mit Teilteilen der Eingabe überein, sodass der Benutzer Leerzeichen, Zahlen usw. an anderer Stelle verwenden kann, solange ein Teil der Eingabe ein Wort enthält.