javascript 中的正则表达式有问题; <angular> 括号内的任何内容都会消失

Trouble with regex in javascript; any content within <angular> brackets disappear

我正在尝试解析一个公式,并将其显示在屏幕上。 例如我应该可以取 <path>T Q,其中 <path>T 不能改变,而 Q 是一个变量。它接受它,但是当它再次在屏幕上打印时,唯一会出现的是 T Q。我希望 <path>T Q 完整显示。

接受公式的其他示例是

(B & A)

~A

~(B&A)

<path>T (B & A)

等等

我的代码是这样的

  var beginPartBUC      = '^<path>\(',
  beginPart = '^\(',
  unaryPart         = '(?:~|<path>T)',
  propOrBinaryPart  = '(?:\w+|\(.*\))',
  subwffPart        = unaryPart + '*' + propOrBinaryPart,
  endPart           = '\)$';

// binary connective regexes

  var conjRegEx = new RegExp(beginPart + '(' + subwffPart + ')&(' + subwffPart + ')' + endPart), // (p&q)
  implRegEx = new RegExp(beginPart + '(' + subwffPart + ')->('  + subwffPart + ')' + endPart), // (p->q)
  equiRegEx = new RegExp(beginPart + '(' + subwffPart + ')<->(' + subwffPart + ')' + endPart); // (p<->q)
 // untilRegEx = new RegExp(beginPartBUC + '(' + subwffPart + ')U('   + subwffPart + ')' + endPart);    //<path>(p U q))

正如 Barmar 指出的那样,您正在写入 html,而 <path> 类似于有效的 html。你可以这样做

currentFormula.html('<strong>Current formula:</strong><br>' + wff.ascii.replace(/>/g, "&gt;").replace(/</g, "&lt;"))

作为附加说明,反引号在 Whosebug 上的使用方式如下:生成 sample code 的“示例代码”。此功能也可在评论中使用。

或者,在 post 中(不是注释),您可以使用制表符或四个空格缩进每行(通过按 { } 即可轻松完成在 post 编辑器中。