lower-case
Advanced tools
Comparing version 1.0.2 to 1.1.0
@@ -1,2 +0,37 @@ | ||
var toLower = String.prototype.toLowerCase; | ||
/** | ||
* Special language-specific overrides. | ||
* | ||
* Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt | ||
* | ||
* @type {Object} | ||
*/ | ||
var languages = { | ||
tr: { | ||
regexp: /\u0130|\u0049|\u0049\u0307/g, | ||
map: { | ||
'\u0130': '\u0069', | ||
'\u0049': '\u0131', | ||
'\u0049\u0307': '\u0069' | ||
} | ||
}, | ||
az: { | ||
regexp: /[\u0130]/g, | ||
map: { | ||
'\u0130': '\u0069', | ||
'\u0049': '\u0131', | ||
'\u0049\u0307': '\u0069' | ||
} | ||
}, | ||
lt: { | ||
regexp: /[\u0049\u004A\u012E\u00CC\u00CD\u0128]/g, | ||
map: { | ||
'\u0049': '\u0069\u0307', | ||
'\u004A': '\u006A\u0307', | ||
'\u012E': '\u012F\u0307', | ||
'\u00CC': '\u0069\u0307\u0300', | ||
'\u00CD': '\u0069\u0307\u0301', | ||
'\u0128': '\u0069\u0307\u0303' | ||
} | ||
} | ||
}; | ||
@@ -9,4 +44,12 @@ /** | ||
*/ | ||
module.exports = function (str) { | ||
return str == null ? '' : toLower.call(str); | ||
module.exports = function (str, locale) { | ||
var lang = languages[locale]; | ||
str = str == null ? '' : String(str); | ||
if (lang) { | ||
str = str.replace(lang.regexp, function (m) { return lang.map[m]; }); | ||
} | ||
return str.toLowerCase(); | ||
}; |
{ | ||
"name": "lower-case", | ||
"version": "1.0.2", | ||
"version": "1.1.0", | ||
"description": "Lowercase a string", | ||
@@ -31,4 +31,5 @@ "main": "lower-case.js", | ||
"istanbul": "^0.3.0", | ||
"mocha": "^1.21.4" | ||
"mocha": "^1.21.4", | ||
"pre-commit": "0.0.9" | ||
} | ||
} |
@@ -6,6 +6,7 @@ # Lower Case | ||
[![Test coverage][coveralls-image]][coveralls-url] | ||
[![Gittip][gittip-image]][gittip-url] | ||
Lower case a string. Also handles non-string entities, such as objects with a `toString` property, numbers and booleans. Empty values (`null` and `undefined`) will come out as an empty string. | ||
Lower case a string. | ||
Supports Unicode (non-ASCII characters) and non-string entities, such as objects with a `toString` property, numbers and booleans. Empty values (`null` and `undefined`) will result in an empty string. | ||
## Installation | ||
@@ -22,4 +23,5 @@ | ||
lowerCase(null); //=> "" | ||
lowerCase('STRING'); //=> "string" | ||
lowerCase(null); //=> "" | ||
lowerCase('STRING'); //=> "string" | ||
lowerCase('STRING', 'tr'); //=> "strıng" | ||
@@ -39,3 +41,1 @@ upperCase({ toString: function () { return 'TEST'; } }); //=> "test" | ||
[coveralls-url]: https://coveralls.io/r/blakeembrey/lower-case?branch=master | ||
[gittip-image]: https://img.shields.io/gittip/blakeembrey.svg?style=flat | ||
[gittip-url]: https://www.gittip.com/blakeembrey |
@@ -0,1 +1,2 @@ | ||
/* global describe, it */ | ||
var assert = require('assert'); | ||
@@ -10,2 +11,6 @@ var lowerCase = require('./'); | ||
}); | ||
it('should support locale override', function () { | ||
assert.equal(lowerCase('I', 'tr'), '\u0131'); | ||
}); | ||
}); |
4674
63
3