我希望通过使用运算符+
,-
,/
,*
作为分隔符来分割。然后我想改变一个项目并将等式重新组合在一起。例如,等式可以是
s="5*3+8-somevariablename/6";
我以为我可以使用正则表达式来区分这个等式。
re=/[\+|\-|\/|\*]/g
var elements=s.split(re);
然后我会更改一个元素并将其重新组合在一起。但是除非我能以某种方式跟踪每个分隔符以及何时使用分隔符,否则我无法将其重新组合在一起。还有其他正则表达式工具吗?
答案 0 :(得分: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
答案 1 :(得分:1)
您还可以动态生成regexp,
var s = '5*3+8-somevariablename/6';
var splitter = ['*','+','-','\\/'];
var splitted = s.split(new RegExp('('+splitter.join('|')+')'),'g'));
var joinAgain = a.join('');
这里,splitted数组包含所有分隔符,因为RegExp中给出了()