.split()在IE8中没有按预期工作

Ada*_*ers 5 javascript internet-explorer-8

我正在使用以下内容从变量中包含的URL中提取变量.它在现代浏览器中工作正常但在IE8中它在第一个变量上失败但在第二个变量上成功.

var p = 'http://sagensundesign.com?height=400&width=300';

/* Get Height */
var h = p.split(/height=([0-9]+)/);
h = h[1];
if (!h) {h = 500};
alert(h);

/* Get Width */
var w = p.split(/width=([0-9]+)/);
w = w[1];
if (!w) {w = 800};
alert(w);
Run Code Online (Sandbox Code Playgroud)

UDPATE:

这是工作解决方案...... http://jsfiddle.net/cssguru/B42tM/

sla*_*ick 6

你需要在这里使用拆分吗?你能不能只使用match:

var h = p.match(/height=([0-9]+)/)[1];
Run Code Online (Sandbox Code Playgroud)

由于浏览器使用正则表达式使用split进行了一些错误http://blog.stevenlevithan.com/archives/cross-browser-split.如果你确实需要使用split正则表达式跨浏览器,你可以查看xregexp,这是一个修复浏览器的正则表达式的库.