Prüfen Sie, ob in der Eingabe nur numerische Werte eingegeben wurden. (jQuery)

Lesezeit: 4 Minuten

Benutzer-Avatar
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

Benutzer-Avatar
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.

$.isNumeric()

Beispiel

$.isNumeric("46")

Stimmt

$.isNumeric(46)

Stimmt

$.isNumeric("dfd")

FALSCH

http://docs.jquery.com/Plugins/Validation/CustomMethods/phoneUS

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 das verwendet:

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, ""); 
return this.optional(element) || phone_number.length > 9 &&
    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

Benutzer-Avatar
James Drinkard

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.

Benutzer-Avatar
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… 🙂

1129960cookie-checkPrüfen Sie, ob in der Eingabe nur numerische Werte eingegeben wurden. (jQuery)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy