从头到尾拆分一个字符串 space

split a string from end till second space

我有一个字符串,我想拆分它以便从特定字符串中提取名称。

let str = "CN=John Mcclau - i0c00cu,OU=PET_Associates,OU=Users,OU=PET,DC=officecabs,DC=SAT-PET,Dt=com";

let splitstr= str.substr(3, str.indexOf(' -'))
console.log(splitstr)

Sample str2 = "PN=Coey PT - ljooys4,OU=PET_Associates,OU=Users,OU=PET,DC=officecabs,DC=SAT-PET,Dt=com";

我正在这样做,但它也显示“-”。我该如何解决?

您可以拆分两次,首先拆分为“=”并采用第二个索引,然后拆分为“-”并采用第一个索引。添加一个 trim() 就可以了

const getName = str => str.split('=')[1].split('-')[0].trim();

let str = "CN=John Mcclau - i0c00cu,OU=PET_Associates,OU=Users,OU=PET,DC=officecabs,DC=SAT-PET,Dt=com";
console.log(getName(str))

str2 = "PN=Coey PT - ljooys4,OU=PET_Associates,OU=Users,OU=PET,DC=officecabs,DC=SAT-PET,Dt=com";
console.log(getName(str2))

如果您将 substr() 换成 slice(),则使用相同的 start/end 索引

可以正常工作

const getName = str => str.slice(3, str.indexOf(' -'));

const str ='CN=John Mcclau - i0c00cu,OU=PET_Associates,OU=Users,OU=PET,DC=officecabs,DC=SAT-PET,Dt=com',
str2 = "PN=Coey PT - ljooys4,OU=PET_Associates,OU=Users,OU=PET,DC=officecabs,DC=SAT-PET,Dt=com";


[str,str2].forEach(s=> console.log(getName(s)))