Я хотел бы проверить DNF (дизъюнктивную нормальную форму), которая выглядит следующим образом A*B+A'*C+C*D*E'
. Для этой цели я использую следующий шаблон:
/[A-Z]'?(\*[A-Z]'?)*(\+[A-Z]'?(\*[A-Z]'?)*)+/g
Я протестировал этот шаблон с помощью метода javascript test () в этом онлайн-инструменте:
http://www.pagecolumn.com/tool/regtest.htm и это дает мне ожидаемый результат.
Я попытался проверить шаблон с помощью 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>
Проблема в том, что я не понимаю, почему флаг (в этом коде) становится «истинным», что должно быть «ложным», поскольку термины А * 3 и CD в dnf="A*3+A*B+CD"
.
Я протестировал это в онлайн-тестере, и там написано: нет совпадений, что я считаю правильным.