Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 找出每个数字并将其添加到数组中_Javascript_Arrays - Fatal编程技术网

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
我该怎么做呢?

您得到的数据看起来有点像管道分隔的数据。我不确定你到底在做什么,但我将假设以下情况:

  • 有时,在这些
    |
    之间会有一些东西
  • 您希望输入所有数据,而不仅仅是
    UserID
    s
  • 这不是一个节点流或其他流,只是一个大的“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,我已使用示例数据对其进行了更新。现在开始了。选民们能解释一下这个答案的错误吗?