Autor Zpráva
iceover
Profil *
Moc vás prosím o radu. Potřeboval bych, upravit regulární výraz tak, aby prošel i vstup s diakritikou a s interpunkcí.

function setInputText($name_post,$name_cz,$size,$min_string,$max_string){
$this->name_post = $name_post;
$this->name_cz = $name_cz;
$this->size = $size;
$this->maxlength = $max_string;
$this->min_string = $min_string;
$this->max_string = $max_string;  

$this->value = @$_POST["$this->name_post"];
$this->value = strip_tags(mysql_real_escape_string($this->value)); 

if (!eregi("^[a-zA-Z]{".$this->min_string.",".$this->max_string."}$", $this->value))
{
self::$error.="<strong>$this->name_cz</strong> se musí skládat ze $this->min_string až $this->max_string znaků (pouze z písmen).<br>";
self::$error_number++; }
}
iceover
Profil *
Tak nakonec jsem si udělal novou funkci, která ověřuje pouze délku:
function setInputAll($name_post,$name_cz,$size,$min_string,$max_string){
$this->name_post = $name_post;
$this->name_cz = $name_cz;
$this->size = $size;
$this->maxlength = $max_string;
$this->min_string = $min_string;
$this->max_string = $max_string;  

$this->value = @$_POST["$this->name_post"];
$this->value = strip_tags(mysql_real_escape_string($this->value));
$lenght_string = strlen($this->value);
if ( $this->min_string > $lenght_string OR $this->max_string < $lenght_string){
self::$error.="<strong>$this->name_cz</strong> se musí skládat ze $this->min_string až $this->max_string znaků (pouze z písmen a číslic).<br>";
self::$error_number++; }
}


Ale, kdyby přece někdo věděl ten reg. výraz tak napište.
Keeehi
Profil
zkus použít
preg_match("/^\p{L}{".$this->min_string.",".$this->max_string."}$/",$vstup);
preg_match("/^[\w\d]{".$this->min_string.",".$this->max_string."}$/",$vstup);
preg_match("/^[[:alnum:]]{".$this->min_string.",".$this->max_string."}$/",$vstup);
Něco by mohlo fungovat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: