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 =...