docs: function splitCleanup(input, text) {
                  var li = input.closest('li'),
                      subTags = text ? text.replace(/ +/, ' ').split(o.dregex) : input.val().replace(/ +/, ' ').split(o.dregex),
                      oldTag = input.data('old_tag'),
                      oldTags = tagList.slice(0),
                      exceeded = false,
                      cbVal; // copy tagList
  
                  for (var i = 0 ; i < subTags.length ; i++) {
                      var tag = $.trim(subTags[i]).slice(0, o.maxLength);
                      if (o.forceLowercase) {
                          tag = tag.toLowerCase();
                      }
  
                      cbVal = o.beforeTagSave(el, ed, oldTags, oldTag, tag);
                      tag = cbVal || tag;
  
                      if (cbVal === false || !tag) {
                          continue;
                      }
  
                      var tagObject = validate(tag);
                      
                      if (tagObject) {
                          var $tagEditorTag =
                              $('<div class="json-tag-editor-tag"' +
                                    (tag.length > o.maxTagLength ? ' title="' + escape(tagObject.value) + '"' : '') + '>' + escape(ellipsify(tagObject.value, o.maxTagLength)) +
                                '</div>');
  
                          var tagProperties = Object.keys(tagObject);
                          for (var j = 0 ; j < tagProperties.length ; j++) {
                              $tagEditorTag.get(0).dataset[tagProperties[j]] = tagObject[tagProperties[j]];
                          }
  
                          oldTags.push(tagObject);
                          li.before(
                              $('<li></li>')
                                  .append('<div class="json-tag-editor-spacer">&nbsp;' + o.delimiter[0] + '</div>')
                                  .append($tagEditorTag)
                                  .append('<div class="json-tag-editor-delete"><i></i></div>')
                          );
  
                          if (o.maxTags && oldTags.length >= o.maxTags) {
                              exceeded = true;
                              break;
                          }
                      }
                  }
  
                  input.closest('li').remove();
                  updateGlobals();
              }