Javascript Split不在IE8中工作,但在FF和Chrome中工作

Javascript Split不在IE8中工作,但在FF和Chrome中工作,javascript,jquery,regex,Javascript,Jquery,Regex,我想拆分下面的字符串 Ex: "Good Site" www.test.com 我想存储为 anchor text = Good Site href = www.test.com 我尝试在正则表达式下拆分,但它在IE中不起作用。它在FF和Chrome中起作用 <!DOCTYPE html> <html> <body> <p id="demo">Click the button to display the array values a

我想拆分下面的字符串

Ex: "Good Site" www.test.com
我想存储为

anchor text = Good Site
href = www.test.com
我尝试在正则表达式下拆分,但它在IE中不起作用。它在FF和Chrome中起作用

<!DOCTYPE html>
<html>
<body>

    <p id="demo">Click the button to display the array values after the split.</p>

    <button onclick="myFunction()">Try it</button>

<script>
    function myFunction()
   {
     var str = '"How are you doing today?" I am good';
     var res = str.split(/"(.*?)"/);
     document.getElementById("demo").innerHTML=res;
   }
</script>

</body>
</html>

单击按钮以显示拆分后的数组值

试试看 函数myFunction() { var str='你今天怎么样?'我很好'; var res=str.split(/“(.*?”/); document.getElementById(“demo”).innerHTML=res; }
使用
.split()
时,IE(Safari To iirc)不会在结果数组中包含捕获的模式。也就是说,您应该使用匹配而不是拆分:

>> '"Good Site" www.test.com'.match(/^"([^"]+)"\s*(.*)/);

[""Good Site" www.test.com", "Good Site", "www.test.com"]
您可以尝试以下方法:

myFunction() {
   var str = '"Good Site" www.test.com';
   var res = str.split('"').splice(1); // outputs: Good Site, www.test.com
   var anchor = res[0]; // Good Site
   var href = res[1]; // www.test.com
   document.getElementById("demo").innerHTML = res;
}

当此代码仅与
split()
一起执行时,例如
var res=str.split(“”);
则输出如下:

,Good Site, www.test.com
它的长度是
3
,这不是必需的,这是由于被
'“
倒逗号分割,所以长度是
3
,所以这里我们必须执行
.splice(1)
来移除数组中的空索引

var res = str.split('"').splice(1);
所以它和长度的输出是
2

Good Site, www.test.com

问题是关于ie8和其他的我在ie8和chrome中测试了他的代码:差异结果。事实上,这是他的问题。我并不感到惊讶;尽管如此,对于手头的工作还是应该使用正确的工具,
.split()
在IE上捕获模式时有一些怪癖。split()创建数组。您正在将数组分配给innerHTML?@RohitAwasthi,这只会将数组转换为逗号分隔的字符串,应该可以工作。