【问题标题】:split equation string by multiple delimiters in javascript and keep delimiters then put string back together在javascript中通过多个分隔符拆分方程字符串并保留分隔符然后将字符串重新组合在一起
【发布时间】:2013-09-12 09:35:37
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 在正则表达式中使用捕获括号,分隔符最终出现在.split() 返回的数组中。 (根据MDN 不是所有浏览器都支持这个,但我相信主要的呢?)

标签: javascript split delimiter


【解决方案1】:

你也可以动态生成正则表达式,

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

这里拆分的数组包含所有分隔符,因为正则表达式中给出了 ()

【讨论】:

    【解决方案2】:

    扩展 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
    

    【讨论】:

      猜你喜欢
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多