在字符串中最后一次出现Word模式后删除部分

时间:2016-06-08 15:48:54

标签: javascript string

我有这段代码:

var str = 'country/city/area'
var idx = str.lastIndexOf('country/city')
// idx = 0

并且 idx 始终为0.难道 idx 是12吗?我的目标是使用它substr(),以便从 str 中取出字符串'

4 个答案:

答案 0 :(得分:0)

如果你想得到最后一个字,你可以搜索最后一个正斜杠并获得它后面的所有内容:

    str.substr(str.lastIndexOf('/') + 1)

如果您希望获得“国家/城市/'之后的所有内容但是,例如,你不知道这是否是字符串的第一部分,你可以使用

    str.substr(str.indexOf('country/city/') + 13);

你的问题并不是100%明确,但你究竟想要达到的目的是什么。

答案 1 :(得分:0)

var str = 'country/city/area'
var pattern = 'country/city/'
var idx = str.lastIndexOf(pattern) + pattern.length
var substring = str.substring(idx, str.length)

解释

1)定义您要搜索的模式

2)找到模式的开头并添加模式的长度=>现在你已经到了最后

3)将模式后面的部分复制到字符串的末尾

答案 2 :(得分:0)

您将要添加搜索字符串的长度:

var str = 'country/city/area';
var checkStr = 'country/city';
var idx = str.lastIndexOf(checkStr);
var lastCharIndex = idx + checkStr.length;

// idx = 0
// idx = 12

注意 - 它会是12,而不是13,因为您的lastIndexOf参数中没有包含最后的“/”。

答案 3 :(得分:0)

您可以按照以下方式实现目标;



var str = 'country/city/area',
 newStr = str.replace("/area","");
console.log(newStr);