Created
December 6, 2022 12:46
-
-
Save tofikhidayatxyz/7ab9dd3be139e877f8242785c25a066b to your computer and use it in GitHub Desktop.
Generate random text pattern for any use case
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // [a/A] alpha numeric | |
| // [la] Lowercase alpha numeric | |
| // [ua] Uppercase alpha numeric | |
| // [w] words | |
| // [lw] Lowercase words | |
| // [uw] uppercase word | |
| // [n] number | |
| // [p] symbol | |
| // [r] random all | |
| // [lr] random lowercase | |
| // [ur] randpm uppercase | |
| const NUMBERS = '1234567890'; | |
| const WORDS = 'abcdefghijklmnopqrstuvwxyz'; | |
| const PUNCTUATION = | |
| "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~"; | |
| const searchPatterns = [ | |
| '[a]', | |
| '[la]', | |
| '[ua]', | |
| '[w]', | |
| '[lw]', | |
| '[uw]', | |
| '[n]', | |
| '[p]', | |
| '[r]', | |
| '[lr]', | |
| '[ur]', | |
| ]; | |
| // const input = | |
| // '[a][a][la][la][ua][w][lw][uw][n][p][a][a][la][la][ua][w][lw][uw][n][p][a][a][la][la][ua][w][lw][uw][n][p]'; | |
| // const input = '[la][la][a][a][a][la][a][a][a][a][a]@gmail.com'; | |
| // 1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed | |
| // const input = | |
| // '[la][la][la][la][la][la][la][la]-[la][la][la][la]-[la][la][la][la]-[la][la][la][la]-[la][la][la][la][la][la][la][la][la][la][la][la]'; | |
| const input = | |
| '[r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r][r]][r][r][r][r][r][r][r][r][r][r][r][r]'; | |
| const createRandomCapitalize = (text) => { | |
| if (!Math.round(Math.random())) { | |
| return text.toUpperCase(); | |
| } else { | |
| return text.toLowerCase(); | |
| } | |
| }; | |
| const alphaNumeric = WORDS + NUMBERS; | |
| const randomPatterns = WORDS + NUMBERS + PUNCTUATION; | |
| const generateRandomText = (type) => { | |
| switch (type) { | |
| case '[a]': | |
| return createRandomCapitalize( | |
| alphaNumeric[Math.floor(Math.random() * (alphaNumeric.length - 1))] | |
| ); | |
| case '[la]': | |
| return alphaNumeric[ | |
| Math.floor(Math.random() * (alphaNumeric.length - 1)) | |
| ]; | |
| case '[ua]': | |
| return alphaNumeric[ | |
| Math.floor(Math.random() * (alphaNumeric.length - 1)) | |
| ]?.toUpperCase(); | |
| case '[w]': | |
| return createRandomCapitalize( | |
| WORDS[Math.floor(Math.random() * (WORDS.length - 1))] | |
| ); | |
| case '[lw]': | |
| return WORDS[Math.floor(Math.random() * (WORDS.length - 1))]; | |
| case '[uw]': | |
| return WORDS[ | |
| Math.floor(Math.random() * (WORDS.length - 1)) | |
| ]?.toUpperCase(); | |
| case '[n]': | |
| return NUMBERS[Math.floor(Math.random() * (NUMBERS.length - 1))]; | |
| case '[p]': | |
| return PUNCTUATION[Math.floor(Math.random() * (PUNCTUATION.length - 1))]; | |
| case '[r]': | |
| return createRandomCapitalize( | |
| randomPatterns[Math.floor(Math.random() * (randomPatterns.length - 1))] | |
| ); | |
| case '[lr]': | |
| return randomPatterns[ | |
| Math.floor(Math.random() * (randomPatterns.length - 1)) | |
| ]; | |
| case '[ur]': | |
| return randomPatterns[ | |
| Math.floor(Math.random() * (randomPatterns.length - 1)) | |
| ]?.toUpperCase(); | |
| } | |
| }; | |
| let res = input; | |
| let loopMax = 0; | |
| while (true) { | |
| loopMax++; | |
| const inputHasbeenPatterns = searchPatterns.find((c) => res.indexOf(c) >= 0); | |
| if (inputHasbeenPatterns == '[a]') { | |
| res = res.replace('[a]', generateRandomText('[a]')); | |
| } else if (inputHasbeenPatterns == '[la]') { | |
| res = res.replace('[la]', generateRandomText('[la]')); | |
| } else if (inputHasbeenPatterns == '[ua]') { | |
| res = res.replace('[ua]', generateRandomText('[ua]')); | |
| } else if (inputHasbeenPatterns == '[w]') { | |
| res = res.replace('[w]', generateRandomText('[w]')); | |
| } else if (inputHasbeenPatterns == '[uw]') { | |
| res = res.replace('[uw]', generateRandomText('[uw]')); | |
| } else if (inputHasbeenPatterns == '[lw]') { | |
| res = res.replace('[lw]', generateRandomText('[lw]')); | |
| } else if (inputHasbeenPatterns == '[n]') { | |
| res = res.replace('[n]', generateRandomText('[n]')); | |
| } else if (inputHasbeenPatterns == '[p]') { | |
| res = res.replace('[p]', generateRandomText('[p]')); | |
| } else if (inputHasbeenPatterns == '[r]') { | |
| res = res.replace('[r]', generateRandomText('[r]')); | |
| } else if (inputHasbeenPatterns == '[ur]') { | |
| res = res.replace('[ur]', generateRandomText('[ur]')); | |
| } else if (inputHasbeenPatterns == '[lr]') { | |
| res = res.replace('[lr]', generateRandomText('[lr]')); | |
| } | |
| if (loopMax >= 100000) { | |
| break; | |
| } | |
| } | |
| console.log(res); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment