我有一个动态生成的文本
xxxxxx-xxxx-xxxxx-xxxxx-Map-B-844-0
如何删除Map ...
之前的所有内容?我知道有一种使用substring()
的硬编码方式,但是正如我所说的那样,这些字符串是动态的,并且在Map ..
可以更改之前,因此我需要通过删除{{1}之前的所有内容来动态地执行此操作} 4th
个字符的索引。
答案 0 :(得分:4)
您可以从字符串的开头删除所有四个减号和之间的字符。
var string = 'xxxxxx-xxxx-xxxxx-xxxxx-Map-B-844-0',
stripped = string.replace(/^([^-]*-){4}/, '');
console.log(stripped);
答案 1 :(得分:3)
我只需要找到Map
的索引并使用它来对字符串进行切片:
let str = "xxxxxx-xxxx-xxxxx-xxxxx-Map-B-844-0"
let ind = str.indexOf("Map")
console.log(str.slice(ind))
如果您更喜欢正则表达式(或者前缀中可能出现Map
),则可以与所需的内容完全匹配:
let str = "xxxxxx-xxxx-xxxxx-xxxxx-Map-B-844-0"
let arr = str.match(/^(?:.+?-){4}(.*)/)
console.log(arr[1])
答案 2 :(得分:0)
我只会在Map一词上拆分并获得第一个索引
var splitUp = 'xxxxxx-xxxx-xxxxx-xxxxx-Map-B-844-0'.split('Map')
var firstPart = splitUp[0]
答案 3 :(得分:0)
将String.replace
与正则表达式一起使用应该是流行的解决方案。
基于OP状态:so I need to do this dynamically by removing everything before 4th index of - character.
,
我认为另一个解决方案是首先使用split('-')
,然后在第四个-
之后加入字符串。
let test = 'xxxxxx-xxxx-xxxxx-xxxxx-Map-B-844-0'
console.log(test.split('-').slice(4).join('-'))