このようなDNF(選言標準形)を検証したいと思いますA*B+A'*C+C*D*E'
。この目的のために、私は次のパターンを使用します。
/[A-Z]'?(\*[A-Z]'?)*(\+[A-Z]'?(\*[A-Z]'?)*)+/g
このオンラインツールhttp://www.pagecolumn.com/tool/regtest.htmでjavascripttest()メソッドを使用してこのパターンをテストし ましたが、期待した結果が得られました。
次のコードを使用して、javascriptでパターンをテストしようとしました。
<script type="text/javascript">
var dnf="A*3+A*B+CD";
var pattern= /[A-Z]'?(\*[A-Z]'?)*(\+[A-Z]'?(\*[A-Z]'?)*)+/g;
var flag = false;
flag=pattern.test(dnf);
console.log(flag);
</script>
問題は、私にはわかりませんが、フラグ(このコード内)が「true」になる理由です。これは「false」である必要があり、でA*3およびCDという用語が発生しdnf="A*3+A*B+CD"
ます。
私はこれをオンラインテスターでテストしました、そしてそれは言います:マッチはありません、私が正しいと思うこと。