arePossibleAnswersValid

by ParanoidAndroid77

HTML

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

JavaScript

function arePossibleAnswersValid(possible_answers) {

  var answer_ref_regex = new RegExp('^[a-zA-Z0-9]{13}$');
  var answer_refs = [];
  var validPossibleAnswerStructure = {
    answer: '',
    answer_ref: '' //this must be unique
  };

  if (!$.isArray(possible_answers)) {
    return false;
  } else {
    //check possible answer total is within limits
    if (possible_answers.length > 300) {
      return false;
    }

    //at least 1 possible answer
    if (possible_answers.length === 0) {
      return false;
    }

    //check possible answer structure
    var are_possible_answer_valid = true;
    $(possible_answers).each(function(key, possible_answer) {


      answer_refs.push(possible_answer.answer_ref);

      if (typeof possible_answer.answer_ref !== 'string' || typeof possible_answer.answer !== 'string') {
        are_possible_answer_valid = false;
        return false;
      }

      //check answer_ref length

      if (possible_answer.answer_ref.length !== 13) {
        are_possible_answer_valid = false;
        return false;
      }

      //check answer_ref to be hex characters
      //check answer_ref to be hex characters
      if (!answer_ref_regex.test(possible_answer.answer_ref)) {
        are_possible_answer_valid = false;
        return false;
      }

      //check answer max length
      if (possible_answer.answer.length === 0 || possible_answer.answer.length > 150) {
        are_possible_answer_valid = false;
        return false;
      }

      //possible_answer cannot be empty
      if (possible_answer.answer === '') {
        are_possible_answer_valid = false;
        return false;
      }

      //strip html tags from possible answers
      possible_answer = possible_answer.answer.replace(/(<([^>]+)>)/ig, ' ');

      //if (!utils.hasSameProps(validPossibleAnswerStructure, possible_answer)) {
      //  are_possible_answer_valid = false;
      //  return false;
      // }

      ////check for answer_ref uniqueness
      ////note: this...