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 に答える