繁体   English   中英

如何检索特定字符串之前的最后一个字符数组

[英]How to retrieve the last array of characters before a specific string

row1: 10016/Documents/folder1/abc.pdf

row2: 10016-10017/10017/Documents/folder1/folder2/xyz.pdf

我试图在 /Documents 之前检索字符串,但如果之前有任何 / ,我需要在此之后检索字符串

在第 1 行,我需要检索 10016

在第 2 行,我需要检索 10017

我试过

var output = filepath.split("/").slice(0,1);

您可以按 '/Documents/' 拆分,试试这个:

 let str = '10016/Documents/abc.pdf'; console.log(str.split('/Documents/')[0])

/Documents/分割,然后按/分割并获得最终元素:

 const row1 = "10016/Documents/folder1/abc.pdf"; const row2 = "10016-10017/10017/Documents/folder1/folder2/xyz.pdf"; let docs = row1.split("/Documents/")[0]; let nums = docs.split("/"); nums = nums[nums.length - 1]; console.log(nums); docs = row2.split("/Documents/")[0]; nums = docs.split("/"); nums = nums[nums.length - 1]; console.log(nums);

如您所见,这适用于row1row2

你可以使用正则表达式来得到这个

([a-z\d]+)\/Documents

解释正则表达式

  • 捕获包含字母(az)或数字(/d)一次或多次出现 ( + ) 的所有内容
  • 还要确保这组字符正好位于/Documents短语之前

 let result = RegExp(/([az\\d]+)\\/Documents/).exec('10016/Documents/abc.pdf'); if (result) { console.log(result[1]) } result = RegExp(/([az\\d]+)\\/Documents/).exec('10016-10017/10017/Documents/xyz.pdf'); if (result) { console.log(result[1]) }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM