簡體   English   中英

拆分無法在IE8中工作,但可以在FF和Chrome中工作

[英]Split not working in IE8 but working in FF and Chrome

我想分割以下字符串。

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>

當使用.split()時,IE(Safari也是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

小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM