检查输入的格式和值

时间:2014-10-12 15:19:09

标签: javascript jquery regex

如果输入字段的内容与给定格式匹配,我需要检查,例如' d(d-d)'并且值是正确的

有效输入将是:

13 (11-14)
13 (13-13)

括号中的值给出一个范围,所以

  1. 范围中的第一个值应低于或等于第二个值
  2. 括号前的值等于第一个和第二个值,或者它是在
  3. 范围内

    我的尝试:

    $subject = "3 (1-4)";
    $pattern = '/^([0-9])\(([0-9]\-[0-9]?)\)$/';
    preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
    
    $first = $matches[1][0];
    $second = $matches[2][0];
    
    // check if first <= second...
    

    但是有很多错误。

1 个答案:

答案 0 :(得分:1)

您可以使用:

function check($subject) {
    $pattern = '/^(\d+)\s\((\d+)\-(\d+)\)$/';
    preg_match($pattern, $subject, $matches);

    $value = (int)$matches[1];
    $min   = (int)$matches[2];
    $max   = (int)$matches[3];

    return $value >= $min && $value <= $max; 
}

print check("3 (1-4)") ? 'true' : 'false'; // prints true
print check("2 (3-7)") ? 'true' : 'false'; // prints false