/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
anti CAPS LOCK
Fra : John Doe


Dato : 13-12-00 05:30

Jeg laver et script som finder ud af at der bruges CAPS LOCK. Jeg henter
indtastede besked/tekst tæller 3 efterfølgende ord, hvis alle 3 ord
inkluderer KUN store bogstaver laves alle store bogstaver i beskeden/teksten
om til små bogstaver. Dette gør jeg med følgende sub rutine:

sub anti_CAPS{
my $caps_count = 0;
for ($i = 1; $i < $#messsage; $i++){
if($messsage[$i] !~ /a-z/){
$caps_count++;
if ($messsage[$i+1] !~ /a-z/){
$caps_count++;
if ($messsage[$i+2] !~ /a-z/){
$caps_count++;
}
}
$caps_count = 0 if ($caps_count < 3);
}
}

if ($caps_count >= 3){
$IN{'mesg'} = lc($IN{'mesg'}) . "<b>(CAPS LOCK HAS BEEN
FILTERED)</b>";
}
}

$IN{'mesg'} er beskeden/teksten og @messsage er et array der indeholder
ordene af $IN{'mesg'}. Min sub rutine kontrollere bare ikke om alle
bogstaver i ordet er store. Kontrol delen returnere sandt hvis bare en
enkelt bogstav er store.. Hvordan kan jeg få min sub rutine til at
komtrollere om ALLE bogstaver er store, ikke kun en enkelt?



 
 
Lars Kim Lund (13-12-2000)
Kommentar
Fra : Lars Kim Lund


Dato : 13-12-00 08:29

Hej "John Doe" <fatih@ofir.dk>

>enkelt bogstav er store.. Hvordan kan jeg få min sub rutine til at
>komtrollere om ALLE bogstaver er store, ikke kun en enkelt?

Lave en regexp der tæller antal store bogstaver + mellemrum, hvis
antaller == strengens længde er dit kriterie opfyldt.

--
Lars Kim Lund
http://www.net-faq.dk/

Thorbjørn Ravn Ander~ (13-12-2000)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 13-12-00 10:41

Lars Kim Lund wrote:

> >enkelt bogstav er store.. Hvordan kan jeg få min sub rutine til at
> >komtrollere om ALLE bogstaver er store, ikke kun en enkelt?
>
> Lave en regexp der tæller antal store bogstaver + mellemrum, hvis
> antaller == strengens længde er dit kriterie opfyldt.

print "!" if ( $a eq uc $a);

--
Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
http://bigfoot.com/~thunderbear

Lars Kim Lund (13-12-2000)
Kommentar
Fra : Lars Kim Lund


Dato : 13-12-00 10:52

Hej Thorbjørn Ravn Andersen <thunderbear@bigfoot.com>

>print "!" if ( $a eq uc $a);

Nåja, hvis det skal være let.

--
Lars Kim Lund
http://www.net-faq.dk/

Peter J. Acklam (13-12-2000)
Kommentar
Fra : Peter J. Acklam


Dato : 13-12-00 13:10

"John Doe" <fatih@ofir.dk> writes:

> if($messsage[$i] !~ /a-z/){
^^^

Du mener vel [a-z]?

Peter

--
$\="\n";$_='The quick brown fox jumps over the lazy dog';print +(split
//)[20,5,24,31,3,36,14,12,31,1,2,11,9,23,33,29,35,15,32,36,7,8,28,29];

John Doe (13-12-2000)
Kommentar
Fra : John Doe


Dato : 13-12-00 16:31

ja, det var det jeg mente, men virkede ikke som jeg ville have. jeg har
så prøvet Thorbjørns forslag, det virker udmærket. Tak for sbaret guys..


Peter J. Acklam skrev i meddelelsen ...
>"John Doe" <fatih@ofir.dk> writes:
>
>> if($messsage[$i] !~ /a-z/){
> ^^^
>
>Du mener vel [a-z]?
>
>Peter
>
>--
>$\="\n";$_='The quick brown fox jumps over the lazy dog';print +(split
>//)[20,5,24,31,3,36,14,12,31,1,2,11,9,23,33,29,35,15,32,36,7,8,28,29];



Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste