Prüfen Sie, ob in der Eingabe nur numerische Werte eingegeben wurden. (jQuery)
Lesezeit: 4 Minuten
Ilja
Ich möchte mit Hilfe von jQuery überprüfen, ob Benutzer die richtige Telefonnummer eingeben. Bisher bin ich zu diesem Zeitpunkt gekommen:
var phone = $("input#phone").val();
if (phone !== "") {
//Check if phone is numeric
$("label#phone_error").show(); //Show error
$("input#phone").focus(); //Focus on field
return false;
}
Grundsätzlich wird überprüft, ob eine Telefonnummer eingegeben wurde, und wenn ja, möchte ich überprüfen, ob es sich um einen numerischen Wert handelt und ob die Fehlermeldungen nicht angezeigt werden. Könnte jemand helfen, zu überprüfen, ob es numerisch ist?
Bedenken Sie, dass Telefonnummern eigentlich keine Zahlen sind, sondern eine Zeichenfolge, die Zahlen enthält. Benutzer werden die Zahlen auf seltsame Weise schreiben, und wenn Sie eine globale Anwendung haben, noch seltsamer. Denken Sie daran, dass Ländercodes mit 00 oder + beginnen, das + ist als Telefonnummer gültig, aber keine gültige Nummer. Tut mir leid, wenn ich hier vom Thema abweiche, aber ich habe zu viel Zeit damit verbracht, auf Websites “keine gültige Nummer” einzugeben
– Stig Hausberg
31. Januar 2012 um 20:23 Uhr
Sie können auch so weit gehen, Zeichen zu entfernen, die keine Zahlen sind, und dann die Eingabe nach Belieben mit einer switch-Anweisung zu erstellen, die jquery verwendet .val() und .length()var valLength = $(this).val().length; in deinen Bedingungen. switch(valLength) { Fügen Sie dann Fälle zu Ihren Längenwerten hinzu, die nach numerischen Werten suchen, oder verwenden Sie eine bedingte Regex-if-Anweisung, um festzustellen, ob Ihr Wert dabei numerisch ist case: Wert in Ihrem Längenarray.
– Dale Landry
8. Juli 2017 um 10:06 Uhr
Warum/warum ist Regexp nicht besser als JQuery isNumeric() ?
– Syed Priom
21. Dezember 2017 um 21:20 Uhr
Versuchen Sie dies … es stellt sicher, dass die Zeichenfolge “Telefon” nur Ziffern enthält und mindestens eine Ziffer enthält
if(phone.match(/^\d+$/)) {
// your code here
}
Dies ist eine gute Option, da jQuery.isNumeric() lange Werte (Int64) nicht validiert.
– j.rmz87
28. Mai 2014 um 15:33 Uhr
Ich denke, es ist wichtig zu erwähnen, dass in Bezug auf die ursprüngliche Frage des OP, wie sichergestellt werden kann, dass eine Telefonnummer nur numerische Werte enthält, (Int64) -Werte ausgesondert werden. Eine Formulareingabe für Telefonnummern hat die höchsten 30 Eingaben. Für eine US-Telefoneingabe kann ein wahrscheinlich lächerlich langer Eintrag gleich sein… (555) 555-5555 ext:(5555). Wir haben also insgesamt 25 Zeichenplatzierungen, die in unserer Beispielzeichenfolge verwendet werden. Ein Reg-Ex mit Beschränkung auf 25 Platzierungen ist alles, was wir brauchen, um sicherzustellen, dass (int64) nicht von jemandem verwendet wird, der das Formular unsachgemäß verwendet. Ich sag bloß…
– Dale Landry
8. Juli 2017 um 9:44 Uhr
Jörg Zapata
Es gibt eine eingebaute Funktion in jQuery, um dies zu überprüfen (isNumeric), also versuchen Sie Folgendes:
var phone = $("input#phone").val();
if (phone !== "" && !$.isNumeric(phone)) {
//Check if phone is numeric
$("label#phone_error").show(); //Show error
$("input#phone").focus(); //Focus on field
return false;
}
Super, wusste nicht, dass dies zu jQuery hinzugefügt wurde. Sollte das sein $.isNumeric?
– Dan A.
31. Januar 2012 um 20:54 Uhr
Ich habe es versucht, aber es funktioniert nicht, wenn Sie lange Werte (Int64) haben, also würde das nur für normale int-Werte funktionieren.
– j.rmz87
28. Mai 2014 um 15:23 Uhr
$.isNumeric() funktioniert nicht für + und – Zeichen vor der Zahl und ignoriert auch die Dezimalpunkte.
– shasi kanth
14. Januar 2015 um 4:02 Uhr
Sie können die jQuery-Methode verwenden, um zu prüfen, ob ein Wert numerisch oder ein anderer Typ ist.
Schau dir das an. Es sollte genau das sein, wonach Sie suchen. Ein US-Telefon-Validierungs-Plugin für jQuery.
Wenn du es alleine machen willst, wirst du eine Menge Arbeit haben. Probier das aus isNaN() Funktion. Es sagt Ihnen, wenn es keine Nummer ist. Sie werden auch Ihre regulären Ausdrücke für die Validierung auffrischen wollen. Wenn Sie RegEx verwenden, können Sie darauf verzichten isNaN()da Sie sowieso darauf testen werden.
Ich habe dies verwendet, um zu überprüfen, ob alle Textfelder numerische Werte hatten:
if(!$.isNumeric($('input:text').val())) {
alert("All the text boxes must have numeric values!");
return false;
}
oder für einen:
$.isNumeric($("txtBox").val());
Verfügbar mit jQuery 1.7.
Bhanu Pratap
if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
alert('Please enter only numbers into amount textbox.')
}
else
{
alert('Right Number');
}
Ich hoffe, dieser Code kann Ihnen helfen.
In diesem Code gibt if condition true zurück, wenn es eine gültige Dezimalzahl mit einer beliebigen Anzahl von Dezimalstellen gibt. und die Warnung wird mit der Meldung „Richtige Zahl“ angezeigt, andernfalls wird ein Warn-Popup mit der Meldung „Bitte geben Sie nur Zahlen in das Textfeld für den Betrag ein.“ angezeigt.
Vielen Dank… 🙂
11299600cookie-checkPrüfen Sie, ob in der Eingabe nur numerische Werte eingegeben wurden. (jQuery)yes
Bedenken Sie, dass Telefonnummern eigentlich keine Zahlen sind, sondern eine Zeichenfolge, die Zahlen enthält. Benutzer werden die Zahlen auf seltsame Weise schreiben, und wenn Sie eine globale Anwendung haben, noch seltsamer. Denken Sie daran, dass Ländercodes mit 00 oder + beginnen, das + ist als Telefonnummer gültig, aber keine gültige Nummer. Tut mir leid, wenn ich hier vom Thema abweiche, aber ich habe zu viel Zeit damit verbracht, auf Websites “keine gültige Nummer” einzugeben
– Stig Hausberg
31. Januar 2012 um 20:23 Uhr
Sie können auch so weit gehen, Zeichen zu entfernen, die keine Zahlen sind, und dann die Eingabe nach Belieben mit einer switch-Anweisung zu erstellen, die jquery verwendet
.val()
und.length()
var valLength = $(this).val().length;
in deinen Bedingungen.switch(valLength) {
Fügen Sie dann Fälle zu Ihren Längenwerten hinzu, die nach numerischen Werten suchen, oder verwenden Sie eine bedingte Regex-if-Anweisung, um festzustellen, ob Ihr Wert dabei numerisch istcase:
Wert in Ihrem Längenarray.– Dale Landry
8. Juli 2017 um 10:06 Uhr
Warum/warum ist Regexp nicht besser als JQuery isNumeric() ?
– Syed Priom
21. Dezember 2017 um 21:20 Uhr