基本的に、次のような正規表現がある場合
/^(foo|bars)$/
私はそれが成功することを望みます
['', 'f', 'fo', 'foo', 'b', 'ba', 'bar', 'bars']
しかし、その後のようなもので失敗します
['j', 'fa', 'foos'...]
頂いた回答の一部は承知しておりましたが、
/^(f(oo?)?|b(ar?)?)$/
また
/^f|fo|foo|b|ba|bar$/
そして、それらは機能しますが、この特定のケースでは、それは私がむしろ行きたい方法ではありません。これが 20 の長い単語に拡張されると、管理できなくなります。可能であれば、よりエレガントなソリューションが欲しいです。
エレガントなアイデアはありますか?私が使用している場所では、RegExではなく文字列のリストを渡し、入力のインデックスが文字列のいずれかで0であるかどうかを確認できますが、できる方法があるかどうかを確認したかっただけです正規表現でそれを行います。
すべての回答に感謝しますが、私はほとんどの場合、可能な限り「エレガントな」ソリューションを探していますが、調べてみると、解決策があるかどうかわかりません。
基本的には強制入力防止です。私が望んでいたのは、Dojo の ValidationTextBox ( http://dojotoolkit.org/reference-guide/1.7/dijit/form/ValidationTextBox.html ) に似たものでした。そこで、入力が検証パターンと一致しない場合はできるだけ早く通知します(私は...そうするかもしれません)が、正しい入力とそのパスのみを許可したいと思います.
言い換えると、入力文字列を同じ長さのパターンに対してのみチェックできるかどうかを確認するエレガントな方法があるかどうかを調べようとしていました。
/^(f|b)$/
この場合、2 つの文字、
/^(fo|ba)$/
等々。
私の具体的な答えは正規表現による代替に関するものですが、正規表現全般についてこれを知りたいです(私が読んだことから、それは可能ではないようです)。
つまり、もしあなたが持っていたら、
/^The dog$/
すべての人にとってテストが成功する方法が欲しい
['', 'T', 'Th',...'The dog']