JSFiddle - React, Tailwind, and code Playground

by Prathameshsb

HTML

<div class="container">
    <textarea id="textInput" placeholder="Type your text here..."></textarea>
    <button onclick="checkGrammar()">Check Grammar</button>
    <div id="output"></div>
  </div>

CSS

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background-color: #f8f8f8;
}

.container {
  width: 80%;
}

textarea {
  width: 100%;
  height: 200px;
  padding: 10px;
  font-size: 16px;
  margin-bottom: 10px;
}

button {
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}

#output {
  margin-top: 10px;
}

JavaScript

function checkGrammar() {
  const textInput = document.getElementById('textInput');
  const outputDiv = document.getElementById('output');
  
  const text = textInput.value;
  const mistakes = findGrammarMistakes(text);

  if (mistakes.length === 0) {
    outputDiv.innerHTML = '<p>No grammar mistakes found!</p>';
  } else {
    const outputHTML = `<p>Grammar Mistakes:</p><ul>${mistakes.map(mistake => `<li>${mistake}</li>`).join('')}</ul>`;
    outputDiv.innerHTML = outputHTML;
  }
}

function findGrammarMistakes(text) {
  // This is a basic example; you might replace it with a more sophisticated grammar-checking algorithm.
  const dummyMistakes = [
    { pattern: /\btheir\b/gi, explanation: 'Possessive: their vs. there' },
    { pattern: /\byour\b/gi, explanation: 'Possessive: your vs. you\'re' },
    { pattern: /\bits\b/gi, explanation: 'Possessive: its vs. it\'s' }
  ];

  const mistakes = dummyMistakes
    .filter(mistake => mistake.pattern.test(text))
    .map(mistake => mistake.explanation);

  return mistakes;
}