urlify string / create a slug

raw

create-slug.js

1
2
3
4
5
6
var slug = somevalue.toLowerCase()
    .replace(/ä/g, 'ae').replace(/ö/g, 'oe').replace(/ü/g, 'ue')
    .replace(/ß/g, 'ss').replace(/ /g, '-')
    .replace(/[^-a-z0-9]/g, '')
    .replace(/--+/g, '-');
 
raw

create-slug.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function urlify($str)
{
    $str = mb_strtolower(trim($str));
    $str = str_replace(
        ['ä', 'ö', 'ü', 'ß', ' '],
        ['ae', 'oe', 'ue', 'ss', '-'],
        $str
    );
    $str = preg_replace('#[^-a-z0-9]#', '', $str);
    $str = str_replace('--', '-', $str);
 
    $str = implode('-', array_unique(explode('-', $str)));
 
    return $str;
}
 
Christian Weiske Christian Weiske
owner

History