All in one go:
var string = "The new page's future name!"
, clean = string.replace(/(^\-+|[^a-zA-Z0-9\/_| -]+|\-+$)/g, '')
.toLowerCase()
.replace(/[\/_| -]+/g, '-')
;
console.log(clean); // "the-new-pages-future-name"
The first replace
takes care of all unwanted characters AND trims all extra dashes at start and end. The second replace replaces all (groups of) slashes, underscores, pipes and spaces by a hyphen.