如果字符串中有三个或更多连字符,我需要从第二个连字符之后的字符串子字符串中获取。
例如,我有这个字符串:
"someStr1 - someStr2 - someStr3 - someStr4"
正如你所看到的,它有 3 个连字符,我需要从子字符串上面的字符串中获取:
"someStr3 - someStr4"
我知道我需要获取第二个连字符的索引位置,然后我可以使用子字符串函数 但我不知道如何检查是否有超过 3 个连字符以及如何检查位置是否是第二个连字符。
最佳答案
您可以使用正则表达式 (?<=([^-]*-){2}).*
(?<=([^-]*-){2})
确保有 2-
比赛前(?<= ... )
是积极的回顾[^-]*
匹配除-
之外的任何内容, 0次或多次-
匹配-
从字面上看
.*
匹配这两个破折号之后的任何内容。
const data = "someStr1 - someStr2 - someStr3 - someStr4";
console.log(/(?<=([^-]*-){2}).*/.exec(data)[0]);
关于javascript - 如何从第二个连字符之后的字符串中获取子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878366/