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,这只会将数组转换为逗号分隔的字符串,应该可以工作。