Guest User

Untitled

a guest
Feb 19th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. // returns a random string that is english-ish.
  2. // if no params passed, will return a lowercase string between 3 and 8 letters.
  3. // 1st arg option to pass in boolean for caplitalizing first letter for proper names (default false)
  4. // 2nd arg option to pass in min chars (default 3)
  5. // 3rd arg option to pass in max chars (default 8)
  6.  
  7. function pronounceableRandomString(cap, min, max) {
  8.  
  9. function randBetween(min, max) {
  10. return Math.floor(Math.random()*(max-min+1)+min);
  11. }
  12.  
  13. var minChars = min || 3;
  14. var maxChars = max || 8;
  15. var capitalize = cap == false ? false : true;
  16.  
  17. if (typeof capitalize !== "boolean" || typeof minChars !== "number" || typeof maxChars !== "number") {
  18. return "Err: Bad Args";
  19. }
  20.  
  21. if (minChars > maxChars) return "Err: Num Chars";
  22.  
  23. var chars = randBetween(minChars,maxChars);
  24. var pattern = randBetween(0,2);
  25. var str = "";
  26.  
  27. var vowelChunk = [
  28. 'a','a','a','a','a','a','a','a','a','a',
  29. 'e','e','e','e','e','e','e','e','e','e',
  30. 'o','o','o','o','o','o','o','o','o','o',
  31. 'i','i','i','i','i','u','u','u','u','u',
  32. 'ae','ai','au','aa','ea','ee','ei','eu','ia','ie',
  33. 'io','ua','ue','ui','uo','eau','oa','oi','ou','ea'
  34. ];
  35.  
  36. var firstConsonentChunk = [
  37. 'b','c','d','f','g','h','j','k','l','m',
  38. 'n','n','p','q','r','s','t','u','v','x',
  39. 'y','z','ch','sh','ph','th','st','str','sk','sp',
  40. 'kr','cl','qu','fr','bl','pl','tr','tw','dr','br',
  41. 'gh','gr','gl','pr','zh','fl','cl','cr','chr','spr',
  42. 'r','s','t','l','n','r','s','t','l','n'
  43. ];
  44.  
  45. var consonentChunk = [
  46. 'b','c','d','f','g','h','j','k','l','m',
  47. 'n','n','p','q','r','s','t','u','v','x',
  48. 'y','z','ch','sh','ph','th','st','str','sk','sp',
  49. 'ss','tt','qu','mm','nn','gg','tr','rt','lt','ft',
  50. 'gh','rg','dd','rp','ll','ck','rf','cr','chr','spr',
  51. 'r','s','t','l','n','r','s','t','l','n'
  52. ];
  53.  
  54. if(pattern < 2 ) {
  55. str = firstConsonentChunk[randBetween(0,firstConsonentChunk.length - 1)] +
  56. vowelChunk[randBetween(0,vowelChunk.length - 1)] +
  57. consonentChunk[randBetween(0,consonentChunk.length - 1)] +
  58. vowelChunk[randBetween(0,vowelChunk.length - 1)] +
  59. consonentChunk[randBetween(0,consonentChunk.length - 1)];
  60. } else {
  61. str = vowelChunk[randBetween(0,vowelChunk.length - 1)] +
  62. consonentChunk[randBetween(0,consonentChunk.length - 1)] +
  63. vowelChunk[randBetween(0,vowelChunk.length - 1)] +
  64. consonentChunk[randBetween(0,consonentChunk.length - 1)] +
  65. vowelChunk[randBetween(0,vowelChunk.length - 1)];
  66. }
  67.  
  68. if (capitalize) {
  69. str = str.charAt(0).toUpperCase() + str.slice(1);
  70. }
  71.  
  72. str = str.substr(0,chars);
  73.  
  74. return str;
  75. };
Add Comment
Please, Sign In to add comment