2014-10-27 105 views
0

我可以检查一个字符串包含字母使用.indexOf()的:如何从字符串的末尾开始获取字母索引?

my_string = 'sdf sdfdsf dfdsdfs'; 
console.log(my_string.indexOf(' ')); 
// returns 4 

是存在的方法做同样但从年底开始? (例如上面必须返回11 - 从右侧的第一个空格至左)

+0

@James Nope,不同的问题。 – Scimonster 2014-10-27 12:39:15

+1

'console.log(my_string.indexOf(''));'用你的输入返回3,而不是4.我不知道你如何期待“11”;从右到左的第一个空白处在第九位? – Matt 2014-10-27 12:43:08

+0

@ user3775292,从右到左的第一个空格是从l到r的第11个位置,并且是从l到r的索引10 – 2014-10-27 12:45:29

回答

2

使用lastIndexOf

my_string = 'sdf sdfdsf dfdsdfs'; 
console.log(my_string.lastIndexOf(' ')); 
+0

为什么http://stackoverflow.com/questions/18893402/javascript-indexof-from-end-of-search-string中的最佳答案是如果lastIndexOf存在时定义新方法? – AlexAstanin 2014-10-27 12:57:32

+0

这是一种不同的用法,他们希望得到搜索结束的索引,而不是开始。 – Scimonster 2014-10-27 12:59:15

+0

感谢您的帮助,Scimonster。 – AlexAstanin 2014-10-27 13:00:21

2

反向您的字符串,并执行indexOf()

reverseString = my_string.split("").reverse().join(""); 
console.log(my_string.length - reverseString.indexOf(' ')); 
0

你可以试试这个

console.log(my_string.lastIndexOf(" ")); 
相关问题