-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathslugify.js
More file actions
31 lines (29 loc) · 1.5 KB
/
slugify.js
File metadata and controls
31 lines (29 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
Create SLUG from a string
This function rewrite the string prototype and also
replace latin and other special characters.
Forked by Gabriel Froes - https://gist.github.com/gabrielfroes
Original Author: Mathew Byrne - https://gist.github.com/mathewbyrne/1280286
*/
if (!String.prototype.slugify) {
String.prototype.slugify = function () {
return this.toString().toLowerCase()
.replace(/[àÀáÁâÂãäÄÅåª]+/g, 'a') // Special Characters #1
.replace(/[èÈéÉêÊëË]+/g, 'e') // Special Characters #2
.replace(/[ìÌíÍîÎïÏ]+/g, 'i') // Special Characters #3
.replace(/[òÒóÓôÔõÕöÖº]+/g, 'o') // Special Characters #4
.replace(/[ùÙúÚûÛüÜ]+/g, 'u') // Special Characters #5
.replace(/[ýÝÿŸ]+/g, 'y') // Special Characters #6
.replace(/[ñÑ]+/g, 'n') // Special Characters #7
.replace(/[çÇ]+/g, 'c') // Special Characters #8
.replace(/[ß]+/g, 'ss') // Special Characters #9
.replace(/[Ææ]+/g, 'ae') // Special Characters #10
.replace(/[Øøœ]+/g, 'oe') // Special Characters #11
.replace(/[%]+/g, 'pct') // Special Characters #12
.replace(/\s+/g, '-') // Replace spaces with -
.replace(/[^\w\-]+/g, '') // Remove all non-word chars
.replace(/\-\-+/g, '-') // Replace multiple - with single -
.replace(/^-+/, '') // Trim - from start of text
.replace(/-+$/, ''); // Trim - from end of text
};
}