Я хотел бы проверить DNF (Disjunctive normal form), который выглядит следующим образом: A*B+A'*C+C*D*E'
. Для этой цели я использую folloing следующую закономерность:Шаблон для функции DNF (регулярное выражение javascript)
/[A-Z]'?(\*[A-Z]'?)*(\+[A-Z]'?(\*[A-Z]'?)*)+/g
Я проверил эту схему с помощью яваскрипта метод испытания() в этом онлайн-инструмент: 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>
Проблема заключается в том, я не понимаю, почему флаг (в этом коде) стать «истинным», который должен быть «ложными», вызывают термины A * 3 и CD в dnf="A*3+A*B+CD"
.
У меня есть testet это в онлайн-тестере, и в нем говорится: нет совпадений, что я считаю правильным.
круто спасибо за объяснение :) –