--- modules/cck/text.module 2006-07-31 15:22:30.000000000 -0700 +++ modules/cck/text.module.new 2006-07-31 15:22:25.000000000 -0700 @@ -98,14 +98,16 @@ function text_field($op, &$node, $field, case 'validate': $allowed_values = explode("\n", $field['allowed_values']); $allowed_values = array_map('trim', $allowed_values); - $allowed_values = array_filter($allowed_values, 'strlen'); + $allowed_values = array_filter($allowed_values, 'strlen'); if (is_array($node_field)) { foreach ($node_field as $delta => $item) { - if ($item['value'] != '') { - if (count($allowed_values) && !in_array($item['value'], $allowed_values)) { - form_set_error($field['field_name'], t('Illegal value for %name.', array('%name' => t($field['widget']['label'])))); - } + if ($item['value'] != '') { + foreach($allowed_values as $exp) { + if(!ereg($exp,$item['value'])) { + form_set_error($field['field_name'], t('Illegal value for %name.', array('%name' => t($field['widget']['label'])))); + } + } } } }