Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

i am trying this code for make a validation for a value. (regex from this site)

UPDATE:

Now i have

$value1=250;    

$value2=10000;

        if (!preg_match("/^(([^0]{1})([0-9])*|(0{1}))(,d{2}){0,1}€?$/", $form['salary']) || (!$form['salary'])>$value1."€" && (!$form['salary'])<$value2."€" ){
        echo ("invalido");
        return false;
    }
    else
    echo ("valido");
    return true;

the code works well, but 20€ is accepted, so the problem now is not the regex, but compare values like 200€ or 1000€.

this probably is wrong

(!$form['salary'])>$value1."€"

example some Input values:

    200€
    200
    200.5
    200.50€

limits - 250€ to 10000€

thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
847 views
Welcome To Ask or Share your Answers For Others

1 Answer

This code below solved my problem:

if (!preg_match("/^(([^0]{1})([0-9])*|(0{1}))(,d{2}){0,1}€?$/", $form['salary'])) {
    echo "invalid";
    return false;
} else {
    $value1 = 400;
    $value2 = 10000;
    $salary = $form['salary'];
    $salary = preg_replace('/[€]/i', '', $salary);
    if($salary < $value1 || $salary > $value2) {
        echo "bad values";
        return false;
    } else {
        echo "valid";
        return true;
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...