我有一个输入,用户可以输入一个数字,然后是(之间没有空格):mi表示分钟,hr表示小时,dy表示天数,wk表示数周或mo表示月份。例如,用户可以输入1mo。我想检查用户输入的数字后跟mi,hr,dy,wk或mo,没有空格。文本需要与上面完全相同。
这是我到目前为止所得到的,但我被困住了:
<div class="form-group">
<label>Remember Me Length</label>
<input type='text' class="form-control" name="settings[<?php echo $settings['remember_me_length']['id']; ?>]" value="<?php echo $remember_me_length; ?>" />
<span id="helpBlock" class="help-block">You may enter any number, followed by (no spaces between): mi for minutes, hr for hours, dy for days, wk for weeks, or mo for months.</span>
</div>
$cfgId = array();
$newSettings = $_POST['settings'];
//Validate remember me length
if ($newSettings[9] != $remember_me_length) {
$newRemember_me_length = $newSettings[9];
if(!in_array($newRemember_me_length, array('mi','hr','dy','wk','mo'), true )) {
$errors[] = lang("CONFIG_INVALID_SPACE_LENGTH");
} elseif (count($errors) == 0) {
$cfgId[] = 9;
$cfgValue[9] = $newRemember_me_length;
$remember_me_length = $newRemember_me_length;
}
}
有人可以指导我朝正确的方向前进吗?如果我需要提供更多信息,请告诉我。
答案 0 :(得分:0)
听起来像是正则表达式的工作:
if (preg_match('/\d+(mi|hr|dy|wk|mo)/', $value)) {
echo 'valid';
} else {
echo 'invalid';
}