拆分字符串仅保留前几个值

Roc*_*ock 2 javascript

我有一个字符串,

var str = '12990|2346|5771|22523|73|16660|16770|16205|8407|13691|'
Run Code Online (Sandbox Code Playgroud)

我想拆分这个字符串以保存前五个值,如12990 | 2346 | 5771 | 22523 | 73

我尝试过以下逻辑

str.split('|').slice(0,5)
Run Code Online (Sandbox Code Playgroud)

但它以数组格式返回.我不希望它那样.

Tus*_*har 7

您可以使用加入切片数组 join()

str.split('|').slice(0, 5).join('|');
Run Code Online (Sandbox Code Playgroud)

var str = '12990|2346|5771|22523|73|16660|16770|16205|8407|13691|';
console.log(str.split('|').slice(0, 5).join('|'));
Run Code Online (Sandbox Code Playgroud)

或者,正则表达式也可以使用 match()

str.match(/\d+(\|\d+){4}/)[0]
Run Code Online (Sandbox Code Playgroud)

var str = '12990|2346|5771|22523|73|16660|16770|16205|8407|13691|';
console.log(str.match(/\d+(\|\d+){4}/)[0]);
Run Code Online (Sandbox Code Playgroud)

正则表达式将匹配一个或多个数字,后跟四个管道实例,后跟数字.

  1. \d+:匹配一个或多个数字
  2. \|:匹配管道|文字
  3. {4}:恰好四次匹配前一组

match返回一个数组,以获得完整的匹配使用[0].