/* * jQuery Furl (Friendly URL) Plugin 1.0.0 * * Author : Vedat Taylan * * Year : 2018 * Usage : $('#InputID').furl({id:'ReplaceInputID', seperate (optional) : '_' }); */ (function ($, undefined) { function Furl() { this.defaults = { seperate: '-' }; } Furl.prototype = { init: function (target, options) { var $this = this; options = $.extend({}, $this.defaults, options); $(target).keyup(function () { var url = urlReplace($(this).val(), options); var $element = $('#' + options.id); if ($element.length > 0) { var tagName = $element.get(0).tagName; switch (tagName) { case 'INPUT': $element.val(url); break; default: $element.text(url); } } }); } }; function urlReplace(url, options) { return url.toLowerCase() .replace(/ä/g, 'ae') .replace(/Ä/g, 'ae') .replace(/ğ/g, 'g') .replace(/ü/g, 'u') .replace(/ş/g, 's') .replace(/ı/g, 'i') .replace(/ö/g, 'o') .replace(/ç/g, 'c') .replace(/Ğ/g, 'g') .replace(/Ü/g, 'u') .replace(/Ş/g, 's') .replace(/I/g, 'i') .replace(/İ/g, 'i') .replace(/Ö/g, 'o') .replace(/Ç/g, 'c') .replace(/[^a-z0-9\s-]/g, "") .replace(/[\s-]+/g, " ") .replace(/^\s+|\s+$/g, "") .replace(/\s/g, "-") .replace(/^\s+|\s+$/g, "") .replace(/[_|\s]+/g, "-") .replace(/[^a-z\u0400-\u04FF0-9-]+/g, "") .replace(/[-]+/g, "-") .replace(/^-+|-+$/g, "") .replace(/[-]+/g, options.seperate); } $.furl = new Furl(); $.furl.version = "1.0.0"; $.fn.furl = function (options) { return this.each(function () { $.furl.init(this, options); }); }; })(jQuery);