# File formvalidator.rb, line 542
    def apply_string_constraint(key, constraint)
      ### New code to handle multiple elements (beware!)
      if Array(@form[key]).length > 1
        index = 0
        Array(@form[key]).each do |value|
          res = self.send("match_#{constraint}".intern, @form[key][index].to_s)
          if res
            if untaint?(key)
              @form[key][index] = res
              @form[key][index].untaint
            end
          else
            @form[key].delete_at(index)
            @invalid_fields[key] ||= []
            unless @invalid_fields[key].include?(constraint)
              @invalid_fields[key].push(constraint) 
            end
            nil
          end
          index += 1
        end
      ### End new code
      else
        res = self.send("match_#{constraint}".intern, @form[key].to_s)
        if res
          if untaint?(key)
            @form[key] = res 
            @form[key].untaint
          end
        else
          @form.delete(key)
          @invalid_fields[key] ||= []
          unless @invalid_fields[key].include?(constraint)
            @invalid_fields[key].push(constraint) 
          end
          nil
        end
      end
    end