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, ">").replace(/</g, "<"))
作为附加说明,反引号在 Whosebug 上的使用方式如下:生成 sample code
的“示例代码”。此功能也可在评论中使用。
或者,在 post 中(不是注释),您可以使用制表符或四个空格缩进每行(通过按 { }
即可轻松完成在 post 编辑器中。
我正在尝试解析一个公式,并将其显示在屏幕上。
例如我应该可以取 <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, ">").replace(/</g, "<"))
作为附加说明,反引号在 Whosebug 上的使用方式如下:生成 sample code
的“示例代码”。此功能也可在评论中使用。
或者,在 post 中(不是注释),您可以使用制表符或四个空格缩进每行(通过按 { }
即可轻松完成在 post 编辑器中。