无法获得与javascript长度相关的正则表达式

Dop*_*ger 2 javascript regex

我正在尝试编写一个Javascript正则表达式,匹配少于3个字母的单词(并且不匹配更长的单词).我不明白为什么这不起作用.

<html>
        <body>
                <script>
                var re = new RegExp("(\W|^)\w{0,2}(\W|$)", "gi");
                var text = "ab ab";
                var matched = re.test(text);
                document.write(matched)

                </script>
        </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我试图得到一个最小的例子,但我有更多的要求,如果示例不完整,我将编辑并添加任何必要的.

SLa*_*aks 10

您的\s被视为Javascript转义,因此正则表达式的实际值是"(W|^)w{0,2}(W|$)".

相反,使用正则表达式文字: /(\W|^)\w{0,2}(\W|$)/gi