Can';无法使javascript长度相关的正则表达式正常工作

Can';无法使javascript长度相关的正则表达式正常工作,javascript,regex,Javascript,Regex,我正在尝试编写一个Javascript正则表达式来匹配少于3个字母的单词(并且不匹配更长的单词)。我不明白为什么这不起作用 <html> <body> <script> var re = new RegExp("(\W|^)\w{0,2}(\W|$)", "gi"); var text = "ab ab"; var m

我正在尝试编写一个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>

var re=new RegExp(“(\W | ^)\W{0,2}(\W |$)”,“gi”);
var text=“ab”;
var匹配=重新测试(文本);
文件。写入(匹配)

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

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


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

nice+1。我知道它在OP中,但我认为您不需要带有
\w
I
修饰符