import re


def validate_passport_field_data(passport):
    """Validates passport field data based on criteria

    Criteria:
    - byr (Birth Year) - four digits; at least 1920 and at most 2002.
    - iyr (Issue Year) - four digits; at least 2010 and at most 2020.
    - eyr (Expiration Year) - four digits; at least 2020 and at most 2030.
    - hgt (Height) - a number followed by either cm or in:
    - If cm, the number must be at least 150 and at most 193.
    - If in, the number must be at least 59 and at most 76.
    - hcl (Hair Color) - a # followed by exactly six characters 0-9 or a-f.
    - ecl (Eye Color) - exactly one of: amb blu brn gry grn hzl oth.
    - pid (Passport ID) - a nine-digit number, including leading zeroes.
    - cid (Country ID) - ignored, missing or not.
    """
    valid_passport = True
    if len(passport['byr']) != 4 or not 1920 <= int(passport['byr']) <= 2002:
        valid_passport = False
    if len(passport['iyr']) != 4 or not 2010 <= int(passport['iyr']) <= 2020:
        valid_passport = False
    if len(passport['eyr']) != 4 or not 2020 <= int(passport['eyr']) <= 2030:
        valid_passport = False

    if not re.match(r'\d+(cm|in)', passport['hgt']):
        # Check if digit followed by "cm" or "in"
        valid_passport = False
    elif re.match(r'\d+cm', passport['hgt']):
        # Check validation against "cm"
        if not 150 <= int(passport['hgt'].replace('cm', '')) <= 193:
            valid_passport = False
    elif re.match(r'\d+in', passport['hgt']):
        # Check validation against "in"
        if not 59 <= int(passport['hgt'].replace('in', '')) <= 76:
            valid_passport = False

    if not re.match(r'#[a-f0-9]{6}', passport['hcl']):
        valid_passport = False
    if not re.match(r'(amb|blu|brn|gry|grn|hzl|oth)', passport['ecl']):
        valid_passport = False
    if not re.match(r'^(\d{9})$', passport['pid']):
        valid_passport = False

    if not passport.get('cid'):
        pass

    return valid_passport