Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // returns a random string that is english-ish.
- // if no params passed, will return a lowercase string between 3 and 8 letters.
- // 1st arg option to pass in boolean for caplitalizing first letter for proper names (default false)
- // 2nd arg option to pass in min chars (default 3)
- // 3rd arg option to pass in max chars (default 8)
- function pronounceableRandomString(cap, min, max) {
- function randBetween(min, max) {
- return Math.floor(Math.random()*(max-min+1)+min);
- }
- var minChars = min || 3;
- var maxChars = max || 8;
- var capitalize = cap == false ? false : true;
- if (typeof capitalize !== "boolean" || typeof minChars !== "number" || typeof maxChars !== "number") {
- return "Err: Bad Args";
- }
- if (minChars > maxChars) return "Err: Num Chars";
- var chars = randBetween(minChars,maxChars);
- var pattern = randBetween(0,2);
- var str = "";
- var vowelChunk = [
- 'a','a','a','a','a','a','a','a','a','a',
- 'e','e','e','e','e','e','e','e','e','e',
- 'o','o','o','o','o','o','o','o','o','o',
- 'i','i','i','i','i','u','u','u','u','u',
- 'ae','ai','au','aa','ea','ee','ei','eu','ia','ie',
- 'io','ua','ue','ui','uo','eau','oa','oi','ou','ea'
- ];
- var firstConsonentChunk = [
- 'b','c','d','f','g','h','j','k','l','m',
- 'n','n','p','q','r','s','t','u','v','x',
- 'y','z','ch','sh','ph','th','st','str','sk','sp',
- 'kr','cl','qu','fr','bl','pl','tr','tw','dr','br',
- 'gh','gr','gl','pr','zh','fl','cl','cr','chr','spr',
- 'r','s','t','l','n','r','s','t','l','n'
- ];
- var consonentChunk = [
- 'b','c','d','f','g','h','j','k','l','m',
- 'n','n','p','q','r','s','t','u','v','x',
- 'y','z','ch','sh','ph','th','st','str','sk','sp',
- 'ss','tt','qu','mm','nn','gg','tr','rt','lt','ft',
- 'gh','rg','dd','rp','ll','ck','rf','cr','chr','spr',
- 'r','s','t','l','n','r','s','t','l','n'
- ];
- if(pattern < 2 ) {
- str = firstConsonentChunk[randBetween(0,firstConsonentChunk.length - 1)] +
- vowelChunk[randBetween(0,vowelChunk.length - 1)] +
- consonentChunk[randBetween(0,consonentChunk.length - 1)] +
- vowelChunk[randBetween(0,vowelChunk.length - 1)] +
- consonentChunk[randBetween(0,consonentChunk.length - 1)];
- } else {
- str = vowelChunk[randBetween(0,vowelChunk.length - 1)] +
- consonentChunk[randBetween(0,consonentChunk.length - 1)] +
- vowelChunk[randBetween(0,vowelChunk.length - 1)] +
- consonentChunk[randBetween(0,consonentChunk.length - 1)] +
- vowelChunk[randBetween(0,vowelChunk.length - 1)];
- }
- if (capitalize) {
- str = str.charAt(0).toUpperCase() + str.slice(1);
- }
- str = str.substr(0,chars);
- return str;
- };
Add Comment
Please, Sign In to add comment