diff --git a/conditional_fields/conditional_fields.module b/conditional_fields/conditional_fields.module
index 23b8cb2..55aee50 100644
--- a/conditional_fields/conditional_fields.module
+++ b/conditional_fields/conditional_fields.module
@@ -1545,7 +1545,14 @@ function conditional_fields_states_handler_text($field, $field_info, $options, &
   if ($options['values_set'] == CONDITIONAL_FIELDS_DEPENDENCY_VALUES_WIDGET) {
     // Cast as array to handle the exception of autocomplete text fields.
     $value = (array) $state[$options['state']][$options['selector']]['value'][0];
-    $state[$options['state']][$options['selector']]['value'] = array_shift($value);
+
+    // The value can be a RegExp
+    if (isset($options['is_regexp']) && $options['is_regexp'] == TRUE) {
+      $state[$options['state']][$options['selector']]['value'] = array('regex' => array_shift($value));
+    }
+    else {
+      $state[$options['state']][$options['selector']]['value'] = array_shift($value);
+    }
   }
 }
 
diff --git a/conditional_fields/includes/conditional_fields.admin.inc b/conditional_fields/includes/conditional_fields.admin.inc
index 10ec07d..adde3e7 100644
--- a/conditional_fields/includes/conditional_fields.admin.inc
+++ b/conditional_fields/includes/conditional_fields.admin.inc
@@ -421,6 +421,12 @@ function conditional_fields_dependency_edit_form($form, &$form_state, $id) {
     'field' => $dummy_field,
   );
 
+  $form['value']['is_regexp'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Is a Regex Expression'),
+    '#default_value' => isset($dependency['options']['is_regexp']) ? $dependency['options']['is_regexp'] : 0,
+  );
+
   $form['values'] = array(
     '#type' => 'textarea',
     '#title' => t('Set of values'),
@@ -725,6 +731,9 @@ function conditional_fields_dependency_edit_form_submit($form, &$form_state) {
       $value = array();
       field_default_extract_form_values(NULL, NULL, array('field_name' => $dependee), NULL, LANGUAGE_NONE, $value, $form['value']['field'], $form_state);
       $dependency['options']['value'] = $value;
+
+      // Regexp
+      $dependency['options']['is_regexp'] = $form_state['values']['value']['is_regexp'];
     }
     else {
       $values = explode("\n", $form_state['values']['values']);
diff --git a/conditional_fields/js/states.js b/conditional_fields/js/states.js
index 6a78283..8a81dbf 100644
--- a/conditional_fields/js/states.js
+++ b/conditional_fields/js/states.js
@@ -79,6 +79,15 @@ states.Dependent.comparisons = {
   'Function': function (reference, value) {
     // The "reference" variable is a comparison function.
     return reference(value);
+  },
+  'Object': function(reference, value) {
+    // Is a Regex Expression
+    if ('regex' in reference) {
+      return RegExp(reference.regex, reference.flags).test(value);
+    }
+    else {
+      return reference.indexOf(value) !== false;
+    }
   }
 };
 
