使用此代码,如果用户输入所有大写字母,该代码将正常工作。但是,我需要自动接受小写和句子大小写作为用户的有效输入。目前,这行不通,有什么主意吗?
add_filter( 'gform_field_validation_17_4', 'custom_validation', 10, 4 );
function custom_validation( $result, $value, $form, $field ) {
$arrWhitelist = array('KNITS10', 'KATNA20');
if ( $result['is_valid'] && !in_array( $value, $arrWhitelist )) {
$result['is_valid'] = false;
$result['message'] = 'Incorrect code';
}
return $result;
}
答案 0 :(得分:2)
使用strtoupper(),使用户输入与您输入的内容相符:
add_filter( 'gform_field_validation_17_4', 'custom_validation', 10, 4 );
function custom_validation( $result, $value, $form, $field ) {
$arrWhitelist = array('KNITS10', 'KATNA20');
if ( $result['is_valid'] && !in_array( strtoupper($value), $arrWhitelist )) {
$result['is_valid'] = false;
$result['message'] = 'Incorrect code';
}
return $result;
}
答案 1 :(得分:0)
您也可以使用strcasecmp(),但是在这种情况下,cleaner选项将更强大。
使用strcasecmp生成的代码为:
function custom_validation($result, $value, $form, $field)
{
$arrWhitelist = array('KNITS10', 'KATNA20');
array_walk(
$arrWhitelist, function ($item) use ($value, $result) {
if (strcasecmp($item, $value) === 0) {
$result['is_valid'] = false;
$result['message'] = 'Incorrect code';
}
}
);
return $result;
}