JSFiddle - React, Tailwind, and code Playground

by Suryar Praveen

JavaScript

(function(factory) {
  if (typeof define === "function" && define.amd) {
    define(["jquery", "./jquery.validate"], factory)
  } else if (typeof module === "object" && module.exports) {
    module.exports = factory(require("jquery"))
  } else {
    factory(jQuery)
  }
}(function($) {
  (function() {
    function stripHtml(value) {
      return value.replace(/<.[^<>]*?>/g, " ").replace(/&nbsp;|&#160;/gi, " ").replace(/[.(),;:!?%#$'\"_+=\/\-���]*/g, "")
    }
    $.validator.addMethod("maxWords", function(value, element, params) {
      return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length <= params
    }, $.validator.format("Please enter {0} words or less."));
    $.validator.addMethod("minWords", function(value, element, params) {
      return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length >= params
    }, $.validator.format("Please enter at least {0} words."));
    $.validator.addMethod("rangeWords", function(value, element, params) {
      var valueStripped = stripHtml(value),
        regex = /\b\w+\b/g;
      return this.optional(element) || valueStripped.match(regex).length >= params[0] && valueStripped.match(regex).length <= params[1]
    }, $.validator.format("Please enter between {0} and {1} words."))
  }());
  $.validator.addMethod("accept", function(value, element, param) {
    var typeParam = typeof param === "string" ? param.replace(/\s/g, "") : "image/*",
      optionalValue = this.optional(element),
      i, file, regex;
    if (optionalValue) {
      return optionalValue
    }
    if ($(element).attr("type") === "file") {
      typeParam = typeParam.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g, "\\$&").replace(/,/g, "|").replace(/\/\*/g, "/.*");
      if (element.files && element.files.length) {
        regex = new RegExp(".?(" + typeParam + ")$", "i");
        for (i = 0; i < element.files.length; i++) {
          file = element.files[i];
          if (!file.type.match(regex)) {
            return !1
      ...