Javascript 找出每个数字并将其添加到数组中
我这里有一些文字Javascript 找出每个数字并将其添加到数组中,javascript,arrays,Javascript,Arrays,我这里有一些文字 | | Serial: N/A | | UserID: 132382474 | | | | Serial: N/A | | UserID: 132382474 | | | | Serial: N/A | | UserID: 132382474 | | | | Serial: N/A | | UserID: 131046468 | | 我希望它获得“UserID”之后的每个数字,并将其放入一个数组中,使用Javascript 我该怎么做呢?您得到的数据看起来有点像管道分隔的数据
| | Serial: N/A | | UserID: 132382474 | |
| | Serial: N/A | | UserID: 132382474 | |
| | Serial: N/A | | UserID: 132382474 | |
| | Serial: N/A | | UserID: 131046468 | |
我希望它获得“UserID”之后的每个数字,并将其放入一个数组中,使用Javascript
我该怎么做呢?您得到的数据看起来有点像管道分隔的数据。我不确定你到底在做什么,但我将假设以下情况:
- 有时,在这些
之间会有一些东西|
- 您希望输入所有数据,而不仅仅是
sUserID
- 这不是一个节点流或其他流,只是一个大的“olgob”文本。如果是的话,你就得边走边排队
var someText=
“| |序列号:N/A | |用户ID:132382474 | | \N”
+“| |序列号:N/A | |用户ID:132382474 | | \N”
+“| |序列号:N/A | |用户ID:132382474 | | \N”
+“| |序列号:N/A | |用户ID:131046468 | |”;
var lines=someText.split('\n')//分道扬镳
var data=lines.map(函数(行){
var entries=line.split(“|”);//通过管道分开
var输出={};
entries.forEach(函数(entry){
var keyValue=entry.split(':');//用冒号分隔
如果(!keyValue[1]){
return;//我们没有“key:value”形式的内容
}
var key=keyValue[0].trim();//这将消除不需要的空白
var value=keyValue[1]。trim();
输出[键]=值;
});
返回输出;
});
控制台日志(数据)
您可以使用提取这些数字,但是您必须使用g
标志,因为您将提取多个数字,String.prototype.match()
无法进行全局搜索(如果您计划使用捕获)。您可以使用自定义匹配功能:
var text=“| |序列号:N/A | |用户ID:132382474”|\
||序列号:不适用| |用户ID:132382474 ||\
||序列号:不适用| |用户ID:132382474 ||\
||序列号:N/A | |用户ID:131046468 | |“;
函数匹配(字符串、正则表达式){
var匹配=[];
var match=null;
while(match=regex.exec(字符串)){
matches.push(匹配[1]);
}
返回比赛;
}
变量编号=匹配(文本,/UserID:\s(\d*)?/g);
控制台日志(编号)代码>如果要查找全局匹配,请使用以下命令:
text.match(/\d+/g)
鉴于:
var text = "| | Serial: N/A | | UserID: 132382474 | |\
| | Serial: N/A | | UserID: 132382474 | |\
| | Serial: N/A | | UserID: 132382474 | |\
| | Serial: N/A | | UserID: 131046468 | |";
有几种方法。你自己试过吗?你听说过吗?我不知道怎么用这个词。然后读一些例子。尝试一些事情。你必须尝试各种想法。没有人会为您编写代码。这就是@MikeC提供文档链接的原因,这样您就可以学习了。;)您还需要考虑文本是如何进入JavaScript的。你是从文件里读的吗?一些可能的答案将取决于文本的存储方式-单个字符串?字符串数组?这是返回一个数组,其中包含一个包含最后一个id的对象。@akinuri,我已使用示例数据对其进行了更新。现在开始了。选民们能解释一下这个答案的错误吗?