JSFiddle - React, Tailwind, and code Playground

JavaScript

function reverse(words) {
    console.log('words', words);

    let wordsArr = words.split(' ');
    let finalWordsArr = [];

    wordsArr.forEach((word) => {
      let regExp = /[^a-zA-Z]/g;
      let wordLetter = word.replace(regExp, '');
      wordLetter = wordLetter.split('');
      wordLetter = wordLetter.reverse();
      let finalWordArray = [];
debugger
      for (let len = word.length, i = len - 1; i > -1; i--) {
        let a = word[i];
        //console.log(regExp.test(word[i], word[i]));
        let bool = regExp.test(a);
        let bool2 = regExp.test(a);
        if (bool) {
          finalWordArray[i] = word[i];
        }
        else {
          finalWordArray[i] = wordLetter.pop();
        }
      }

      finalWordsArr.push(finalWordArray.join(''));
    });

    this.result = finalWordsArr.join(' ');
    return this.result;
  }
  
  console.log(reverse('s1ta$%r3t 2 hel^low'));