正则表达式实施偶数奇数的负号

gui*_*fix 6 javascript regex math

我想.replace在JavaScript中编写一个函数来实现代数中负符号的偶数规则.在一系列消极和积极的迹象:

  • 案例1:如果有一些奇数的负号,则相当于一个负号
  • 案例2:如果存在偶数个负号,则相当于正号.

所以我会然后做.replace(/regex for case1/, "-").replace(/regex for case2/, "+").有关如何做到这一点的任何想法?

以下是示例字符串:

  • \frac{a^{n+-m}}{b} - > \frac{a^{n-m}}{b}
  • abc+cde=ghj--+--hsnj - > abc+cde=ghj+hsnj

198*_*983 1

好吧,您可以将所有+s 替换为--,然后进行相应替换:

expr.replace(/\+/g, '--').replace(/(--)+-/g, '-').replace(/--/g, '+')
Run Code Online (Sandbox Code Playgroud)

或者你可以使用你的函数.replace来计算 s 的数量-

expr.replace(/[-+]+/g, function(signs){
    return '+-'[signs.replace(/\+/g, '').length % 2];
});
Run Code Online (Sandbox Code Playgroud)