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)
你把它当作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);
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)
不过你要提取出中间的那个空白位置有什么用呢?另外,貌似你是想写转义符吧?转义符应该是用“反斜杠”(\),而不是“(正)斜杠”(/)。/[\(\)+*-\/]/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);