slugify.js 695 B

1234567891011121314151617
  1. var makeString = require('./helper/makeString');
  2. var defaultToWhiteSpace = require('./helper/defaultToWhiteSpace');
  3. var trim = require('./trim');
  4. var dasherize = require('./dasherize');
  5. module.exports = function slugify(str) {
  6. var from = "ąàáäâãåæăćčĉęèéëêĝĥìíïîĵłľńňòóöőôõðøśșšŝťțŭùúüűûñÿýçżźž",
  7. to = "aaaaaaaaaccceeeeeghiiiijllnnoooooooossssttuuuuuunyyczzz",
  8. regex = new RegExp(defaultToWhiteSpace(from), 'g');
  9. str = makeString(str).toLowerCase().replace(regex, function(c){
  10. var index = from.indexOf(c);
  11. return to.charAt(index) || '-';
  12. });
  13. return trim(dasherize(str.replace(/[^\w\s-]/g, '-')), '-');
  14. };