forked from ZwiiCMS-Team/ZwiiCampus
77 lines
2.2 KiB
JavaScript
77 lines
2.2 KiB
JavaScript
|
/*
|
|||
|
* 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);
|