Advertisement
Todorov_Stanimir

03. James Bond Exercise: String and RegExp

Oct 24th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let array = JSON.parse(document.getElementById('array').value);
  3.     let result = document.getElementById('result');
  4.     const specialKey = array.shift()
  5.  
  6.     let regex = new RegExp(`(\\s|^)(${specialKey}\\s+)([A-Z!#$%]{8,})(\\.|,|\\s|$)`, 'gi');
  7.  
  8.     array.map(str => {
  9.         while ((match = regex.exec(str)) !== null) {
  10.             let encodeMessage = match[3];
  11.             if (encodeMessage.toUpperCase() !== encodeMessage) {
  12.                 continue;
  13.             }
  14.             let decodeMessage = decodeMessageFunc(encodeMessage);
  15.             let message = match[1] + match[2] + decodeMessage + match[4];
  16.             str = str.replace(match[0], message);
  17.         }
  18.  
  19.         let pElement = document.createElement('p');
  20.         pElement.textContent = str;
  21.         result.appendChild(pElement);
  22.     });
  23.  
  24.     function decodeMessageFunc(encodeMessage) {
  25.         const symbols = ['!', '%', '#', '$'];
  26.         const newSymbols = ['1', '2', '3', '4'];
  27.         symbols.forEach((symbol, index) => {
  28.             while (encodeMessage.includes(symbol)) {
  29.                 encodeMessage = encodeMessage.replace(symbol, newSymbols[index]);
  30.             }
  31.         });
  32.         return encodeMessage.toLowerCase()
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement