stutterify
Version:
Changes a string so that it will stutter.
47 lines (43 loc) • 1.55 kB
JavaScript
module.exports = function stutterify(string, prob_stutter = 0.7, prob_length = 0.37) {
var sent = "";
var str = "";
const stutter_word = (word, count) => {
const stutter_str = Math.max(1, word.match(/[aiueo]/i));
if (stutter_str.index) {
const stutter_length = stutter_str.index;
const stutter_part = word.substr(0, stutter_length);
var result = "";
for (var i = 0; i < count; i++) {
result += stutter_part + "-";
}
} else {
const stutter_part = word.substr(0, 2);
var result = "";
for (var i = 0; i < count; i++) {
result += stutter_part + "-";
}
}
result += word;
return result;
}
string.split(" ")
.forEach(item => {
if (item.match(/[a-z]/i)) {
if (Math.random() < prob_stutter) {
if (Math.random() < prob_length) str = stutter_word(item, 2) + " ";
else str = stutter_word(item, 1) + " ";
sent += str;
} else {
if (item != string.split(" ")[string.length]) {
str = item + " ";
} else {
str = item;
}
sent += str;
}
} else {
sent += item;
}
})
return sent.replace(/\s*$/, "");;
};