如何使用javascript拆分每一行?

时间:2016-08-08 04:51:22

标签: javascript

我有一个看起来像这样的字符串:

cover.jpg|http://domain2.com
insert.jpg|http://domain46.com
01.jpg|http://domain2g.com

我想用这个角色分开|在每一行上获取每行的第一个拆分字符串,以便最终结果如下所示:

cover.jpg
insert.jpg
01.jpg

这是我的代码,我不能让它为每一行工作



var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com';
var fields = s.split('|');
alert(fields[0])




4 个答案:

答案 0 :(得分:1)

假设您有可用的地图功能,您可以通过拆分新行字符,然后拆分管道字符上的每一行并获得结果数组中的第一项来实现此目的。



var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com';
var fields = s.split('\n').map(function(line){ return line.split('|')[0];});
console.log(fields);




http://caniuse.com/#search=map

答案 1 :(得分:0)

您还需要按新行拆分。

var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com';

s.split('\n').forEach(function(line){
  var fields = line.split('|');
  console.log(fields[0])
})

答案 2 :(得分:0)

首先使用regext /\n/g拆分每一行,这将对\n(新行)出现进行全局拆分。

接下来循环每个字段(行)的出现,并通过执行正则表达式/\|/来提取文件名。此正则表达式按|字符拆分(但仅捕获第一个实例)。

var s = 'cover.jpg|http://domain2.com\ninsert.jpg|http://domain46.com\n01.jpg|http://domain2g.com';
   var fields = s.split(/\n/g);
   var fileNames = [];
   for(var i = 0;i<fields.length;i++){
	fileNames.push(fields[i].split(/\|/g)[0]);
   }
   alert(fileNames);

答案 3 :(得分:0)

这可能会有所帮助:

var array1 = s.split('\n');

var array2 = array1[0].split('|');
var array3 = array1[1].split('|');
var array4 = array1[2].split('|');

alert(array2[0]+"\n"+array3[0]+"\n"+array4[0]);

首先根据'\n'进行拆分,然后根据'|'进行拆分