在javascript中用多个分隔符拆分方程字符串,保留分隔符,然后将字符串重新组合在一起
我有一个方程,我想通过使用操作符在javascript中用多个分隔符拆分方程字符串,保留分隔符,然后将字符串重新组合在一起,javascript,split,delimiter,Javascript,Split,Delimiter,我有一个方程,我想通过使用操作符+,-,/,*作为分隔符来拆分。然后我想改变一项,把方程重新组合起来。例如,一个方程式可以是 s="5*3+8-somevariablename/6"; 我在想我可以用正则表达式来分解方程 re=/[\+|\-|\/|\*]/g var elements=s.split(re); 然后我会更改一个元素并将其重新组合在一起。但我没有办法把它重新组合起来,除非我能以某种方式跟踪每个分隔符以及它的使用时间。有其他类似的regexp工具吗?在NNN的
+
,-
,/
,*
作为分隔符来拆分。然后我想改变一项,把方程重新组合起来。例如,一个方程式可以是
s="5*3+8-somevariablename/6";
我在想我可以用正则表达式来分解方程
re=/[\+|\-|\/|\*]/g
var elements=s.split(re);
然后我会更改一个元素并将其重新组合在一起。但我没有办法把它重新组合起来,除非我能以某种方式跟踪每个分隔符以及它的使用时间。有其他类似的regexp工具吗?在NNN的帖子上展开,应该可以:
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
var s='5*3+8-somevariablename/6';
var regex=/([\+\-\*\/]);
var a=s.split(正则表达式);
//两次迭代(彼此索引)
对于(变量i=0;i
您还可以动态生成regexp
var s = '5*3+8-somevariablename/6';
var splitter = ['*','+','-','\\/'];
var splitted = s.split(new RegExp('('+splitter.join('|')+')'),'g'));
var joinAgain = a.join('');
在这里,分割数组保存所有分隔符,因为在RegExp中给出了()在正则表达式中使用捕获括号,分隔符最终位于返回的数组中。(并不是所有的浏览器都支持这一点,但我相信主要的浏览器都支持?)