Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中用多个分隔符拆分方程字符串,保留分隔符,然后将字符串重新组合在一起_Javascript_Split_Delimiter - Fatal编程技术网

在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中给出了()

在正则表达式中使用捕获括号,分隔符最终位于返回的数组中。(并不是所有的浏览器都支持这一点,但我相信主要的浏览器都支持?)