我有以下代码:
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视为数组?我每次循环运行时都会为它赋值,而不是为数组添加值。
答案 0 :(得分:1)
match()
返回包含所有匹配项的数组。它不返回一个字符串。
答案 1 :(得分:0)
.match()
函数返回一个数组。 Here is reference
您可以尝试:
var correctID = textArray[i].match(reg).toString();
或者如果您只需要第一次出现:
var correctID = textArray[i].match(reg)[0];