29/04/21 9:31
Carlo
Conosco poco le regular expression, che sono un vero e proprio linguaggio docs.microsoft.com/en-us/dotnet/standard/base-types/….
La tua espressione non sembra costruita per lo scopo che richiedi, infatti accetta tranquillamente "-776-996189".
Non ho le competenze per modificarla in modo che accetti solo numeri telefonici, ma aggiungendo il più tra i caratteri validi funzionerà anche con il più:
Il problema è che il numero sarà valido anche se il più è all'interno del numero...
In VB.Net per ottenere quanto richiedi, si può scrivere una funzione che restituisce true o false, dato un numero telefonico
per richiamare la funzione:
Dim ris as boolean = TelNumber("+776-996189"
ris diventerà true o false in accordo con il numero passato
oppure:
La tua espressione non sembra costruita per lo scopo che richiedi, infatti accetta tranquillamente "-776-996189".
Non ho le competenze per modificarla in modo che accetti solo numeri telefonici, ma aggiungendo il più tra i caratteri validi funzionerà anche con il più:
^([0-9\s\-\+]{7,})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$
Il problema è che il numero sarà valido anche se il più è all'interno del numero...
In VB.Net per ottenere quanto richiedi, si può scrivere una funzione che restituisce true o false, dato un numero telefonico
Function TelNumber(numero As String) Dim validi As String = "0123456789-+" ' caratteri accettati numero = numero.Replace(" ", "") ' rimuovo eventuali spazi contenuti nel numero If numero.Substring(0, 1) = "-" Then Return False ' c'è un meno all'inizio If numero.IndexOf("+") > 0 Then Return False ' c'è un più all'interno del numero For i = 0 To numero.Length - 1 If Not validi.Contains(numero.Substring(i, 1)) Then Return False ' è stato incontrato un carattere non valido Next Return True ' tutte le condizioni sono rispettate End Function
per richiamare la funzione:
Dim ris as boolean = TelNumber("+776-996189"
ris diventerà true o false in accordo con il numero passato
oppure:
If TelNumber("+776-996189") Then MessageBox.Show("il numero è valido") Else MessageBox.Show("il numero non è valido") End If
Ultima modifica effettuata da Carlo 29/04/21 10:42
in programmazione tutto è permesso
07/05/21 10:46
alip1
Postato originariamente da Carlo:
Conosco poco le regular expression, che sono un vero e proprio linguaggio docs.microsoft.com/en-us/dotnet/standard/base-types/….
La tua espressione non sembra costruita per lo scopo che richiedi, infatti accetta tranquillamente "-776-996189".
Non ho le competenze per modificarla in modo che accetti solo numeri telefonici, ma aggiungendo il più tra i caratteri validi funzionerà anche con il più:
Il problema è che il numero sarà valido anche se il più è all'interno del numero...
In VB.Net per ottenere quanto richiedi, si può scrivere una funzione che restituisce true o false, dato un numero telefonico
per richiamare la funzione:
Dim ris as boolean = TelNumber("+776-996189"
ris diventerà true o false in accordo con il numero passato
oppure:
Conosco poco le regular expression, che sono un vero e proprio linguaggio docs.microsoft.com/en-us/dotnet/standard/base-types/….
La tua espressione non sembra costruita per lo scopo che richiedi, infatti accetta tranquillamente "-776-996189".
Non ho le competenze per modificarla in modo che accetti solo numeri telefonici, ma aggiungendo il più tra i caratteri validi funzionerà anche con il più:
^([0-9\s\-\+]{7,})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$
Il problema è che il numero sarà valido anche se il più è all'interno del numero...
In VB.Net per ottenere quanto richiedi, si può scrivere una funzione che restituisce true o false, dato un numero telefonico
Grazie semplice ed ottimo:k: Function TelNumber(numero As String) Dim validi As String = "0123456789-+" ' caratteri accettati numero = numero.Replace(" ", "") ' rimuovo eventuali spazi contenuti nel numero If numero.Substring(0, 1) = "-" Then Return False ' c'è un meno all'inizio If numero.IndexOf("+") > 0 Then Return False ' c'è un più all'interno del numero For i = 0 To numero.Length - 1 If Not validi.Contains(numero.Substring(i, 1)) Then Return False ' è stato incontrato un carattere non valido Next Return True ' tutte le condizioni sono rispettate End Function
per richiamare la funzione:
Dim ris as boolean = TelNumber("+776-996189"
ris diventerà true o false in accordo con il numero passato
oppure:
If TelNumber("+776-996189") Then MessageBox.Show("il numero è valido") Else MessageBox.Show("il numero non è valido") End If
aaa