Search code examples
javascriptjqueryhtmltwitter-bootstrapbootstrap-tags-input

process tag before converting it into tag using bootstrap tags input


i am using bootstrap tags input in my site. basically what i am trying to do is, ask user to type urls into a text field, now if the text is valid url then only convert it into tag otherwise don't.

is there any way to process text before converting into tags?

any help would be appriciated.

Thanks


Solution

  • Bootstrap tags have beforeItemAdd event which triggered just before an item gets added. Bootstrap tags

    $('input').on('beforeItemAdd', function(event) {
        /* Validate url */
        if (/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(event.item)) {
            event.cancel = false;
        } else {
            event.cancel = true;
        }
    });