代码之家  ›  专栏  ›  技术社区  ›  John Kurlak

为什么string.split()对于正则表达式的行为不同?

  •  2
  • John Kurlak  · 技术社区  · 14 年前

    在JavaScript中,如果我运行以下代码:

    <script type="text/javascript">
    var nameStr = 'Chris Kate Steve';
    var names = nameStr.split(/[ ]/);
    var names2 = nameStr.split(' ');
    
    for (var i in names)
    {
        alert(i);
    }
    
    for (var i in names2)
    {
        alert(i);
    }
    </script>
    

    它会提醒:

    2

    输入

    对于第一组和:

    0

    1

    第二盘。

    2 回复  |  直到 4 年前
        1
  •  1
  •   Amarghosh    14 年前

    split 以字符串作为输入的方法返回子字符串数组。所以那个人回来了 Array 对象只是有它的元素作为它的内容。

    以regex作为输入的方法返回 string.match() regex.exec() 功能)-因此 input index 属性。

        2
  •  4
  •   Mewp    14 年前

    for...in 迭代对象的属性-将其与数组一起使用是不可靠的,应该避免。使用 for(var i=0; i < names.length; i++) 你的问题就会解决。