Controllare se l’input è il numero e contiene solo digists 0-9

Sto usando C#.
Come faccio a verificare se una stringa di input è un numero intero ed è fatta solo di cifre da 0 a 9?

Un ulteriore requisito è che deve essere sempre esattamente 9 cifre totale; niente di più, niente di meno.

ad esempio,

OK: 118356737, 111111111, 123423141,

ERRORE: 11a334356,
1.2.4.535,
1112234.222 ecc

grazie

  • Si intende verificare se è un numero intero?
  • Provare espressione Regolare.
  • come questo Questo e Questo ?
  • Sono numeri negativi è permesso?
InformationsquelleAutor ShaneKm | 2012-06-13



5 Replies
  1. 10

    È possibile utilizzare regex:

    string input = "123456789";
    bool isValid = Regex.IsMatch(input, @"^\d{9}$");

    o LINQ:

    string input = "123456789";
    bool isValid = input.Length == 9 && input.All(char.IsDigit);
  2. 1

    È possibile utilizzare le espressioni regolari per verificare la stringa di input.
    Il modello di seguito le partite di 9 numeri, il primo numero non dovrebbe essere 0.

    ^[1-9]\d{8}$

  3. 1

    Aggiornamento. Come per il commento, è necessario utilizzare le espressioni regolari per garantire che tutti i casi sono gestiti correttamente.

    Verificare la corretta espressione con regex

    string inputStr = "";
    if(Regex.IsMatch(inputStr, @"^\d{9}$");) 
    {
     //now check for int
     int result;
     if(int.TryParse(inputStr, out result) 
     {
       //it IS an integer 
       //the result integer is in the variable result.
     }
    }

    Vedi msdn per saperne di più su int.TryParse(). Nota: double, float, long, ecc inoltre hanno le loro versioni di TryParse().

    • Che non sta andando a lavorare perché TryParse consente uno spazio bianco e segno. Così non valido (secondo OP requisiti) stringa " -2345" avrebbe superato il test.
    • buona pesca 🙂 ho fissato la risposta.
  4. 0

    aggiungere questo controllo ajax

    <

    asp:FilteredTextBoxExtender ID="FilteredTextBoxExtender5" runat="server" TargetControlID="yourtextbox"
                                        FilterType="Custom, Numbers" ValidChars="." />

    o uso di espressioni regolari in sede di convalida toolbox

    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1"
    ErrorMessage="Please Enter Only Numbers" Style="z-index: 101; left: 424px; position: absolute;
    top: 285px" ValidationExpression="^\d+$" ValidationGroup="check"></asp:RegularExpressionValidator>
    • Questo sarebbe il lavoro più facile
  5. 0

    se si desidera lavorare per il punto decimale, provare questo

    string input="12356";
    bool valid= Regex.IsMatch(input, @"^[-+]?\d+\.?\d*$")); //returns true;
    
    
    
    string input="123.456";
    bool isValid= Regex.IsMatch(input, @"^[-+]?\d+\.?\d*$")); //returns true
    
    
    string input="12%3.456";
    bool isValid= Regex.IsMatch(input, @"^[-+]?\d+\.?\d*$")); //returns false

    Clicca qui Per la Descrizione Dettagliata

Lascia un commento