在javascript中使用正则表达式的麻烦; <angular>括号内的任何内容都会消失</angular>

时间:2015-04-19 15:11:55

标签: javascript regex brackets

我正在尝试解析公式,并将其显示在屏幕上。 例如,我应该能够<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))

1 个答案:

答案 0 :(得分:0)

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

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

作为补充说明,在StackOverflow上使用反引号,如下所示:`示例代码`生成sample code。此功能也可在评论中找到。

或者,在帖子(不是评论)中,您可以使用标签或四个空格缩进每一行(通过在帖子编辑器中按 { } 轻松完成。