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...