0

我只在所有以空格分隔的单词都长于 3 个单词字符时才尝试匹配(3 个单词字符是强制性的,abc* 是正确的,但 ab* 不是)。这是我的测试:

<html>
        <body>
                <script>
                var re = /(?!(\W|^)\w{0,2}(\W|$)).*/i;
                var texts = new Array("ab","ab*","abc de*", "ab* def");
                for (textindex in texts)
                {
                        var text = texts[textindex];
                        var matched = re.test(text);
                        document.write(matched + "<br/>")
                }
                </script>
        </body>
</html>

所有文本都匹配,但我相信没有一个应该匹配。也许我误解了前瞻工作原理的一些基本原理。

4

1 回答 1

3

要测试的简单正则表达式是:

/^(\s?\S{3,})+$/

至于为什么您的正则表达式不起作用,您的否定前瞻仅仅意味着“这在这个确切的点上不存在”,所以无论您的输入是什么,您都会非常至少。

于 2011-06-29T17:40:33.113 回答