You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
819 B
49 lines
819 B
"use strict"; |
|
|
|
var ensureString = require("type/string/ensure") |
|
, objHasOwnProperty = Object.prototype.hasOwnProperty; |
|
|
|
var capitalLetters = { |
|
A: true, |
|
B: true, |
|
C: true, |
|
D: true, |
|
E: true, |
|
F: true, |
|
G: true, |
|
H: true, |
|
I: true, |
|
J: true, |
|
K: true, |
|
L: true, |
|
M: true, |
|
N: true, |
|
O: true, |
|
P: true, |
|
Q: true, |
|
R: true, |
|
S: true, |
|
T: true, |
|
U: true, |
|
V: true, |
|
W: true, |
|
X: true, |
|
Y: true, |
|
Z: true |
|
}; |
|
|
|
module.exports = function () { |
|
var input = ensureString(this); |
|
if (!input) return input; |
|
var outputLetters = []; |
|
for (var index = 0, letter; (letter = input[index]); ++index) { |
|
if (objHasOwnProperty.call(capitalLetters, letter)) { |
|
if (index) outputLetters.push("-"); |
|
outputLetters.push(letter.toLowerCase()); |
|
} else { |
|
outputLetters.push(letter); |
|
} |
|
} |
|
|
|
return outputLetters.join(""); |
|
};
|
|
|