Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093

    lunghezza variabile e controllo valore numerico

    Ciao a tutti,

    ho due varabile:

    $descrizione='prova uno prova";

    come faccio a verificare che la variabile $descrizione non sia superiore a 128 caratteri

    Inoltre, come faccio a verificare che la variabile:

    $costo=20_;

    sia numerica e non contenga char?

    grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    1.
    length($descrizione)
    http://www.perldoc.com/perl5.6.1/pod/func/length.html

    2.
    $costo ~= /^[\d_]+$/;

    oppure:
    $costo ~= /^[^a-zA-Z]+$/;
    http://www.perldoc.com/perl5.6.1/pod/perlre.html
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    il problema della lunghezza l' ho risolto, non riesco a capire come fare per sapere se una stringa contiene numeri o caratteri...

  4. #4
    Dipende cosa intendi.

    Il Perl non è un linguaggio 'tipato', cioè non fa una vera differenza tra numeri (interi, float, double, ecc.) e caratteri (char, stringhe, ecc.). Il che significa che per Perl
    $ab = 1;
    e
    $ab = '1';

    equivalgono, mentre in C e in Java il primo sarebbe un numero 'int' il secondo sarebbe una char.

    Per cui puoi usare metodi indiretti come quelli suggeriti da Mich_, in particolare suggerisco:

    if ($var =~ /[^0-9]/) {
    print "Non è un numero\n";
    }

    che ti dice che se nella variabile è contenuto alcunchè, in qualunque posizione, non sia un numero, tutto è un NON numero (char o stringa), altrimenti è un numero.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Con le RE, come ti ho spiegato.
    Le forme piu` semplici delle RE sono uguali a quelle in JS (anche se la sintassi esterna alla RE e` diversa).

    Esempio:
    $costo ~= /^([\d_]+)$/
    if(length($1)>1) print"costo contiene solo numeri e _\n";
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    perfetto tutto funziona grazie mille...ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.