我想验证看起来像这样的 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>
问题是,我不明白,为什么标志(在这段代码中)变成“真”,它必须是“假”,导致dnf="A*3+A*B+CD"
.
我在在线测试仪中对此进行了测试,它说:没有匹配项,我认为是正确的。