Autor | Zpráva | ||
---|---|---|---|
iceover Profil * |
#1 · Zasláno: 3. 4. 2011, 23:38:46
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 * |
#2 · Zasláno: 4. 4. 2011, 00:38:06
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. |
||
Časová prodleva: 5 dní
|
|||
Keeehi Profil |
#3 · Zasláno: 8. 4. 2011, 23:52:49
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); |
||
Časová prodleva: 13 let
|
0