var SMALL_WORDS, _;
_ = require('underscore');
SMALL_WORDS = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i;
module.exports = {
capitalize: function(string, lowerOthers) {
var other;
Eif (lowerOthers == null) {
lowerOthers = true;
}
other = lowerOthers ? string.substring(1).toLowerCase() : string.substring(1);
return string.charAt(0).toUpperCase() + other;
},
getNumberAndStringOrder: function(string) {
var parsedInt;
parsedInt = parseFloat(string);
if (_.isNaN(parsedInt)) {
return string.toLowerCase();
} else {
return parsedInt;
}
},
titleize: function(string) {
return string.replace(/_/g, ' ').replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g, function(match, index, title) {
if (index > 0 && index + match.length !== title.length && match.search(SMALL_WORDS) > -1 && title.charAt(index - 2) !== ":" && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\s-]/) < 0) {
return match.toLowerCase();
}
Iif (match.substr(1).search(/[A-Z]|\../) > -1) {
return match;
}
return match.charAt(0).toUpperCase() + match.substr(1);
});
}
};
|