字符串处理像循环内的数组 - Javascript

时间:2014-01-07 08:15:50

标签: javascript arrays loops

我有以下代码:

for(i = 0; i < textArray.length; i++)
        {
            var reg = /\bSTEAM_[01]:[01]:[0-9]{1,10}\b/;
            var correctID = textArray[i].match(reg);

            if(correctID !== null)
            {
                var z = correctID.split(':');

                var correctID64 = '765611' + 97960265728 + z[3];

                steamIDs.push(correctID64);
                alert(correctID64);
            }
        };

但是,我得到一个未被捕获的类型错误:“当我尝试拆分correctID时,未捕获的TypeError:对象[对象数组]没有方法'拆分'”。根据我的理解,correctID应该是一个字符串,当我尝试转储correctID的索引时,它会失败。但是,当我转储数据类型时,它会以[Object Array]返回。

为什么将correctID视为数组?我每次循环运行时都会为它赋值,而不是为数组添加值。

2 个答案:

答案 0 :(得分:1)

match()返回包含所有匹配项的数组。它返回一个字符串。

Docs

答案 1 :(得分:0)

.match()函数返回一个数组。 Here is reference

您可以尝试:

var correctID = textArray[i].match(reg).toString(); 

或者如果您只需要第一次出现:

var correctID = textArray[i].match(reg)[0];