Ich habe ein Website-Formular, das eine US-Telefonnummer-Eingabe für Folgezwecke erfordert, und das ist in diesem Fall sehr notwendig. Ich möchte versuchen, Benutzer zu entfernen, die Junk-Daten eingeben 330-000-0000 . Ich habe einige Optionen von Drittanbietern gesehen, die Telefonnummern für Sie validieren, jedoch idk, wenn das die beste Option für diese Situation ist. Wenn Sie jedoch einen dieser Dritten benutzt haben und eine Empfehlung abgeben können, die auch hier sehr geschätzt wird.
Ich überlege jedoch, ob ich die Nummer anhand einer Reihe von Regeln überprüfen soll, um zu versuchen, die empfangenen Junk-Telefonnummern einzugrenzen.
Würde dies dazu führen, dass Sie in Situationen, in denen Sie denken, einem Benutzer die Eingabe seiner Telefonnummer nicht erlauben würden? Können Sie sich weitere Regeln vorstellen, die eine Telefonnummer nicht enthalten sollte? Irgendwelche anderen Gedanken?
Es scheint mir, dass Sie sich mehr anstrengen, als es rechtfertigt. Überlegen Sie:
Wenn Sie vor falsch eingegebenen Telefonnummern schützen möchten, können Sie wahrscheinlich mit nur einem sehr einfachen Scheck mehr als 90% davon abfangen.
Wenn Sie versuchen, Benutzer dazu zu zwingen, eine gültige Nummer anzugeben, ob sie diese Informationen weitergeben möchten oder nicht, dann haben Sie eine hoffnungslose Aufgabe übernommen - selbst wenn Sie auf 100% genau zugreifen konnten -zu-der-Sekunde-Telco-Datenbanken, um zu verifizieren, dass die genaue eingegebene Nummer derzeit live ist, können Sie immer noch keine Gewissheit darüber erlangen, dass die Nummer, die sie Ihnen gegeben haben, ihre eigene ist. Noch einmal, ein einfacher Check wird die Mehrheit der Leute, die gefälschte Zahlen eingeben, vereiteln, aber diejenigen, die bereit sind, mehr als zwei oder drei Mal zu versuchen werden einen Weg finden, Ihre Versuche zu besiegen, ihre Zahlen zu gewinnen.
Wie auch immer, ein einfacher Test wird Ihnen gute Ergebnisse bringen, und komplexere Regelwerke werden immer mehr Zeit in Anspruch nehmen, während Sie immer weniger Nutzen bringen (während Sie möglicherweise auch falsche Positive hinzufügen, wie bereits gezeigt). sieben der gleichen Ziffer "und 867-5309 Fälle).
Sie können die Telefonnummernvalidierung intern in Ihrer App mithilfe von regulären Ausdrücken durchführen. Abhängig von Ihrer Sprache können Sie eine Funktion aufrufen, die true zurückgibt, wenn eine angegebene Telefonnummer mit dem Ausdruck übereinstimmt.
In PHP:
%Vor%Sie können verschiedene reguläre Ausdrücke online nachschlagen. Ich fand das eine über dem bei Ссылка
Bearbeiten: Einige sprachspezifische Sites für reguläre Ausdrücke:
In Django gibt es ein nettes kleines contrib-Paket namens localflavor, das viele länderspezifische Validierungscodes enthält, zum Beispiel Postleitzahlen oder Telefonnummern. Sie können auch in der Quelle nachschauen, wie Django diese für das Land behandelt, das Sie verwenden möchten; Zum Beispiel: US-Formularprüfung . Dies kann ein großer Rückgriff auf Informationen über Länder sein, von denen Sie wenig wissen.
Sie müssen auch die zehnstellige Wahl berücksichtigen, die jetzt in einigen Bereichen verwendet wird: Dies unterscheidet sich von der Fernwahl (dh 303-555-1234, im Gegensatz zu 1-303-555-1234) ). An manchen Orten ist eine gültige Telefonnummer zehn Ziffern lang; in anderen ist es sieben.
Bei meiner Recherche, die ich vorher hätte machen sollen & lt; & lt; Ich habe festgestellt, dass 7 identische Ziffern gültige Telefonnummern sind. Also kann ich diese Regel auszählen.
Dies ist eine schnelle Funktion, die ich verwende (unten). Ich habe Zugang zu einer Postleitzahlen-Datenbank, die Orts- und Präfixdaten enthält, die monatlich aktualisiert werden. Ich habe oft darüber nachgedacht, einen Daten-Dip durchzuführen, um zu bestätigen, dass das Präfix für die Vorwahl existiert.
%Vor%Ich frage mich nicht, ob dies der richtige Ort ist, es ist eine Formatierungsfunktion und keine Validierungsfunktion, ich dachte, lass es uns mit der Community teilen, vielleicht wird es eines Tages hilfreich sein ..
%Vor%Meine Validierungsfunktion ist wie folgt:
%Vor%Ich rufe diese letzte Funktion @ die OnNumberChanging (Nummer als String) -Methode der Entität.
Tags und Links algorithm regex validation phone-number