繁体   English   中英

如何从第二个连字符后的字符串子字符串中获取?

[英]How to get from the string substring after second hyphen?

如果字符串中有三个或更多连字符,则需要从第二个连字符后的字符串子字符串中获取。

例如,我有以下字符串:

"someStr1 - someStr2 - someStr3 - someStr4"

如您所见,它有3个连字符,我需要从子字符串上方获取字符串:

"someStr3 - someStr4"

我知道我需要获取第二个连字符的索引位置,然后可以使用子字符串函数,但是我不知道如何检查是否有3个以上的连字符以及如何检查第二个连字符的位置。

您可以使用RegEx (?<=([^-]*-){2}).*

  • (?<=([^-]*-){2})可以确保有2 -你的比赛前

    • (?<= ... )是令人反感的

    • [^-]*匹配除-任何内容,0次或更多次

    • -匹配-从字面上看

  • .*匹配这两个破折号之后的任何内容。

演示

 const data = "someStr1 - someStr2 - someStr3 - someStr4"; console.log(/(?<=([^-]*-){2}).*/.exec(data)[0]); 

分割字符串与阵列-并检查是否array.length > 3 ,这意味着至少三个-串英寸 如果为true,则将index == 2的数组连接到末尾-并修剪字符串。

 var text = "someStr1 - someStr2 - someStr3 - someStr4" var textArray = text.split('-') if(textArray.length>3){ console.log(textArray.slice(2).join('-').trim()) } 

这样的事情怎么样:

var testStr = "someStr1 - someStr2 - someStr3 - someStr4";
var hyphenCount = testStr.match(/-/g).length;
if(hyphenCount > 2){
    var reqStr = testStr.split('-').slice(-2).join('-');
    console.log(reqStr) // logs "someStr3 - someStr4"
}

暂无
暂无

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

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