Non ho avuto modo di testare bene la cosa, facci sapere ciao.

codice:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <input type="text" id="testo" />
        <div id="result"></div>

        <script>
            const mytext = document.getElementById("testo")
            const result = document.getElementById("result")

            mytext.addEventListener("input", (e) => {
                const myRexp = new RegExp(/^[a-z\'\s\àèìòù]{3,}$/, "gi")
                if (myRexp.test(e.target.value)) {
                    result.textContent = "valido"
                } else {
                    result.textContent =
                        "non valido, (regexp con minimo 3 caratteri)"
                }
            })
        </script>
    </body>
</html>