代码如下:
程序代码:   var rule =/[/(/)+*-//]/g;
   var strings = text.split(rule);
   alert(strings);假如我的text为123++23时,它显示的值为123,23.按道理说应该显示为123,,23.  为什么会这个样子。我在两个项目上测试了一个显示正常结果,另一个却不可以。

解决方案 »

  1.   

    "123++23".split(/[/(/)+*-//]/g)FF和Chrome都是"123","","23"
      

  2.   

       var text = "123++23"
        var rule =/[/(/)+*-//]/g;
       text = text.replace(rule,function(w){
            return " "+w
       })
       var strings = text.split(rule)
       strings = strings.join(",").replace(/\s(?=,)/g,"");
       strings = strings.split(",")
       alert(strings)
      

  3.   

    你把它当作IE的JScrpt引擎的bug好了。微软的JScript有少量行为特征与标准的ECMAScript规范不一致,实际过程中碰到这类问题就尽量绕开吧,换个通用的解决方案。
    不过你要提取出中间的那个空白位置有什么用呢?另外,貌似你是想写转义符吧?转义符应该是用“反斜杠”(\),而不是“(正)斜杠”(/)。/[\(\)+*-\/]/g如果你是想分离出所有的数值,建议用下面的方法:
    var text= '1.23++23';
    var r = /[\d.]+/g;
    var numbers = text.match(r);也可以
    var text= '1.23++23';
    var r = /[+\-*\/()]+/g; // 分割符带+号表示可重复,此方法在各浏览器表现一致
    var numbers = text.split(r);
    alert(numbers);