3

我有一个等式,我想通过使用运算符+, -, /,*作为分隔符来拆分。然后我想更改一项并将方程式重新组合在一起。例如一个方程可以是

 s="5*3+8-somevariablename/6";    

我在想我可以使用正则表达式来分解等式。

    re=/[\+|\-|\/|\*]/g
var elements=s.split(re);

然后我会更改一个元素并将其重新组合在一起。但是除非我能以某种方式跟踪每个定界符以及何时使用它,否则我无法将其重新组合在一起。是否有其他类似的正则表达式工具?

4

2 回答 2

5

扩展 nnnnn 的帖子,这应该有效:

var s = '5*3+8-somevariablename/6';
var regex = /([\+\-\*\/])/;
var a = s.split(regex);

// iterate by twos (each other index)
for (var i = 0; i < a.length; i += 2) {
    // modify a[i] here
    a[i] += 'hi';
}

s = a.join(''); // put back together
于 2013-09-08T23:06:31.933 回答
1

您还可以动态生成正则表达式,

var s = '5*3+8-somevariablename/6';
var splitter = ['*','+','-','\\/'];
var splitted = s.split(new RegExp('('+splitter.join('|')+')'),'g'));
var joinAgain = a.join('');

由于 RegExp 中给出的 (),此处拆分的数组包含所有分隔符

于 2016-07-06T12:45:53.200 回答