JSFiddle - React, Tailwind, and code Playground

by Gwyn Milcote

HTML

Name generator. Type: V for vowel, C for consonant, D for digraph, S for a syllable, R for random. Lower-case letters and symbols will stay the same.
<p><input type='text' class='preferences'><br>
<button class='generate'>Generate 10</button></p>
<span class='results'></span>

JavaScript

var vowels = ['a','i','o','e','u','a','e','u','i','o','a','e','u','i','o','ue','eu','ai','ie','ei','ou','oi','ae','ao','oe'];

var consonants = ['w','r','q','t','s','f','d','g','h','j','k','l','m','n','p','b','v','c','z','s','t','r','n','m','p','l','b','d','f','g','h','n','r','s','m','d','x','t','w','c','k','l','y','y'];

var startDigraphs = ['sh','ch','tr','gr','th','ph','wh','wr','br','bl','gh','fr','kr','cr','ll','sl','cl','st','str','chr','kh','shr','khr'];

var midDigraphs = ['th','ch','sh','wh','ph','ll','st','dg','nd','ng'];

var endDigraphs = ['sh','st','ph','rn','rd','tz','ll','nd','ng','ld','mn','gh','th','mb','rch','rsh','tch','kh','ln','lm'];

function getVowel(){
	return vowels[Math.floor(Math.random() * vowels.length)];
  //return blah;
}
function getConsonant(){
	return consonants[Math.floor(Math.random() * consonants.length)];
  //return blah;
}
function getStartDigraph(){
	return startDigraphs[Math.floor(Math.random() * startDigraphs.length)];
 // return blah;
}
function getMidDigraph(){
	return midDigraphs[Math.floor(Math.random() * midDigraphs.length)];
  //return blah;
}
function getEndDigraph(){
	return endDigraphs[Math.floor(Math.random() * endDigraphs.length)];
  //return blah;
}

function getRandom(){
	var letters = ''; var num = Math.random();
	if(num < 0.3){ letters = getVowel(); }
	else if(num < 0.5){ letters = getConsonant(); }
	else if(num < 0.8){ letters = getMidDigraph(); }
	else{ letters = getSyllable(); }
	return letters;
}


function getSyllable(){
	
	var part1 = '';
  var part2 = '';
  var part3 = '';
	var num1 = Math.random();
  var num2 = Math.random();
  var num3 = Math.random();
  
	if(Math.random() < 0.5){ // start with vowel
		part1 = getVowel();
		
		if(num1 < 0.5){ // add cons/digraph after
			if(num2 < 0.5){
			    part2 = getConsonant();
		    }else{
			    part2 = getEndDigraph();
			}
		}
		
	}else{ // cons/digraph, then vowel
		
		if(num1 < 0.5){
			part1 = getConsonant();
		}else{
			part1 =...