Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vérifier une chaîne de caractères

5 réponses
Avatar
news1
Bonjour,

Je cherche a tester qu'une chaine de caract=E8res ne contiennes que des
chiffres.

Merci d'avance

5 réponses

Avatar
news1
On 5 mar, 15:17, "" wrote:
Bonjour,

Je cherche a tester qu'une chaine de caractères ne contiennes que des
chiffres.

Merci d'avance


Je viens de trouver la réponse

if isnumeric(chaine) then

Avatar
jbongran
wrote:
On 5 mar, 15:17, "" wrote:
Bonjour,

Je cherche a tester qu'une chaine de caractères ne contiennes que des
chiffres.

Merci d'avance


Je viens de trouver la réponse

if isnumeric(chaine) then


Pas si sûr IsNumeric(-1.25) retourne True (Vrai)
IsNumeric(1.0) retourne True (Vrai)
etc...
L'usage d'une expression régulière est peut être plus sûre (pas tout testé,
mais ça devrait faire l'affaire):

Function RegExpTest(patrn, strng)
Dim regEx ' Crée la variable.
Set regEx = New RegExp ' Crée l'expression régulière.
regEx.Pattern = patrn ' Définit les critères.
regEx.IgnoreCase = False ' Définit le respect de la casse.
RegExpTest = regEx.Test(CStr(strng)) ' Lance le test de recherche.
End Function

WScript.Echo("125 est numerique: " & RegExpTest("^d+$", 125))
WScript.Echo("1.25 est numerique: " & RegExpTest("^d+$", 1.25))
WScript.Echo("-125 est numerique: " & RegExpTest("^d+$", -125))


Avatar
Michel Claveau
Bonjour !

En fait, ça peut être très compliqué.

Et, déjà, comment définir des chiffres ?

Par exemple, est-ce que chrw(8547) (chiffre romain 4) est considéré
comme un chiffre ?

Plus vicieux : chrw(&h248B)

Et l'infini ? chrw(&h221E)

etc.






--
@-salutations

Michel Claveau
Avatar
Jacques Barathon [MS]
"Michel Claveau" <Enleverles wrote in message
news:
Bonjour !

En fait, ça peut être très compliqué.

Et, déjà, comment définir des chiffres ?


Chiffres, pas nombres. Chiffres = 0 .. 9, non? Ok, on suppose que vu
l'intitulé du problème de départ, on ne parle que des chiffres arabes.

La solution de jbongran basée sur une expression régulière me paraît être la
plus probante. En PowerShell (hé oui, ça faisait un bail) ça donnerait
simplement:

PS> $texte = "1024 pommes"
PS> $texte -match "^d+$"
False

PS> $texte = "1024"
PS> $texte -match "^d+$"
True

Jacques

Avatar
Méta-MCI
Bonsoir !


Mais... chrw(&h248B) est aussi un chiffre arabe...

Met ça dans le fichier toto.vbs :
u=chrw(&h248B)
R=MsgBox(u, 0)

Et lance : wscript toto.vbs

Juste pour voir.


Ce que je voulais soulever, c'est le problème des chiffres unicode
non-Ascii.
Mais, bon, c'est plus de la provoc qu'un réel problème...


@+

Michel Claveau