Javascript split() not working in IE

前端 未结 3 1612
情歌与酒
情歌与酒 2021-01-20 01:12

Lets say I have a textarea with this text:

  1. first line some text.
  2. second line, other text. next line will be empty.
  3. (empt
相关标签:
3条回答
  • 2021-01-20 01:31

    The regex split is behaving strangely in IE8 and lower. Use a string comparison instead and it seems to work (fiddle)

    testText.split("\n")
    

    rather than

    testText.split(/\n/)
    

    [Edit] From Steven Levithan's Blog:

    Internet Explorer excludes almost all empty values from the resulting array (e.g., when two delimiters appear next to each other in the data, or when a delimiter appears at the start or end of the data)

    0 讨论(0)
  • 2021-01-20 01:39

    I see the same screwy behavior in IE with .split() and new lines. You can use your own split function to control it more closely:

    function mySplit(str, ch) {
        var pos, start = 0, result = [];
        while ((pos = str.indexOf(ch, start)) != -1) {
            result.push(str.substring(start, pos));
            start = pos + 1;
        }
        result.push(str.substr(start));
        return(result);    
    }
    

    Working example here: http://jsfiddle.net/jfriend00/xQTNZ/.

    0 讨论(0)
  • 2021-01-20 01:53

    Possible duplicate of JavaScript: split doesn't work in IE? ? Internet Explorer excludes almost all empty values from the resulting array (e.g., when two delimiters appear next to each other in the data, or when a delimiter appears at the start or end of the data).

    0 讨论(0)
提交回复
热议问题