[ Miroslav Dostanić @ 16.09.2007. 18:46 ] @
Pokusavam da ogranicim koriscenje nekih karaktera prilikom unosa teksta. Ja hocu da se npr. za unos teksta koristi samo:
[a-z] Mala slova
[A-Z] Velika slova
[0-9] Brojevi
i jos neki znakovi: _ - .
Sve ostalo ako se pojavi bilo gde u tekstu mora biti signalizirano. Nadam se da me razumete.

Pokusao sam to odprilike ovako da uradim:

Code:

$text = 'neki tekst HGIH 88hd . ';

if (!eregi('[a-zA-Z0-9_\-\.]',$text))
{
  echo '<br />Neispravan tekst!';
}
else
{
  echo '<br />Ispravan tekst!';
}

Jednostavno nece da radi kako treba. Sta god pokusam(a pokusao sam svasta), stalno nesto pogresno javi.

Ako neko mozda ima neku bolju ideju...
Unapred hvala.
[ beep @ 16.09.2007. 18:56 ] @
npr.

ereg("(^[a-zA-Z0-9]$)",$text)
[ Miroslav Dostanić @ 16.09.2007. 19:12 ] @
Nece ni to....
[ StaX_ @ 16.09.2007. 19:21 ] @
!eregi('^[a-zA-Z0-9_\-\.\ ]+$',$text)
[ taksistaZR @ 16.09.2007. 19:22 ] @
!eregi("^[a-zA-Z0-9-._]$",$text)

mala izmena koda :-)

!eregi("^[a-zA-Z0-9 _.-]*$",$text)

[Ovu poruku je menjao taksistaZR dana 16.09.2007. u 20:54 GMT+1]
[ Miroslav Dostanić @ 17.09.2007. 07:42 ] @
!eregi("^[a-zA-Z0-9 _.-]*$",$text) Ovo radi dobro(taksistaZR).

!eregi('^[a-zA-Z0-9_\-\.\ ]+$',$text) Ovo delimicno radi dobro.Samo kad unesem - u tekst, onda mi prijavi gresku.(StaX_)

Uglavnom resen problem. Hvala svima.

[ mdostanic @ 24.10.2008. 09:32 ] @
Da ne otvaram novu temu.

Kako da neki izraz tipa (broj - broj) zamenim sa "zamena"

Code:
$string = '[1 - 1] text';
$sablon = '[[0-9]+ - +[0-9]] ';
$zamena = 'zamena';
  
$string = ereg_replace($sablon,$zamena,$string);

echo $string;


Ovo radi OK samo u slučaju [1 - 1]. A kad stavim npr. [1 - 111] onda neradi.
Unapred hvala.
[ Jbyn4e @ 24.10.2008. 09:53 ] @
Pa ukljuci slucajeve kad ima vise od jednog broja.
Da li ti uopste razumes sta ti radi tvoj "sablon"?
Citat:

$sablon = '[[0-9]+ - +[0-9]] ';

- nalazi ako je zagrada pa vise brojeva pa space pa crtica pa jedan ili vise space-ova pa broj pa space pa zagrada. Da li si to hteo da postignes?
Ovo ti sad radi za "[111 - 1] ", ako to nije to sto hoces - moras malo da mucnes glavom i prilagodis "sablon" znajuci sta koji deo u sablonu radi.

Dakle, RTFM (read that FINE manual).

HINT:
http://www.regular-expressions.info/reference.html
http://en.wikipedia.org/wiki/Regular_expression
http://www.python.org/doc/2.5.2/lib/re-syntax.html

a ima i na jos milijadru mesta...
[ mdostanic @ 24.10.2008. 10:00 ] @
Rešenje:
Code:
$sablon = '[[0-9]+ - +[0-9]+] ';

Zaboravio sam +
[ Jbyn4e @ 24.10.2008. 10:59 ] @
Obrati paznju na to da imas i + pre space-a, pa ce ti ovo raditi i za
[111 -________33]
ali ne i za
[111______-_33]
niti
[111___ - ________33]

Edit: izmenjena poruka zbog nesporazuma, izbaceni offtopic delovi :)

[Ovu poruku je menjao Jbyn4e dana 24.10.2008. u 22:28 GMT+1]
[ mdostanic @ 24.10.2008. 15:33 ] @
Citat:
Bravo, napokon da neko koristi mozak :)
Nepotreban komentar. Zadrži za sebe.
Citat:
Obrati paznju na to da imas i + pre space-a, pa ce ti ovo raditi i za
[111 -________33]
ali ne i za
[111______-_33]
niti
[111___ - ________33]
To je tačno.

[Ovu poruku je menjao mdostanic dana 24.10.2008. u 16:51 GMT+1]
[ mdostanic @ 24.10.2008. 20:51 ] @
Ček stani malo... nisam hteo da budem "arogantan". Ipak tvoj komentar može da se protumači u dva smisla. Uostalom stavi se na moje mesto... nepoznajem te i kao ni tvoj smisao za humor.
A ako sam te protumačio pogrešno, što je naravno svakom moguće (živ čovek pa greši...), onda primi moje najiskrenije izvinjenje...