2013-10-03 18 views
27

ho una stringa: "www.google.com.sdg.jfh.sd"Trova il primo indice di una stringa dopo indice

voglio trovare il primo ".s" string che si trova dopo "SDG ".

così ho l'indice di "SDG", da:

var start_index = str.indexOf("sdg"); 

ora ho bisogno di trovare le prime ".s" indice che si trova dopo il 'sdg'

Qualsiasi aiuto apprezzato!

+0

Cosa intendi con _ "trovare il primo indice .s"? _ Vuoi trovare la sua posizione nella stringa? – matewka

risposta

12

Questo codice potrebbe essere utile

var string = "www.google.com.sdg.jfh.sd", 
    preString = "sdg", 
    searchString = ".s", 
    preIndex = string.indexOf(preString), 
    searchIndex = preIndex + string.substring(preIndex).indexOf(searchString); 

È può testarlo

+0

Questo concetto è perfetto quando si utilizza regex per ottenere l'indice. 'indexOf (stringa)', la risposta successiva è ovviamente migliore, ma in caso di 'nuovo RegExp (searchString," g "). exec (text) .index', questo è fantastico. :-) –

90

C'è un secondo parametro che controlla la posizione di partenza di ricerca:

String.prototype.indexOf(arg, startPosition); 

modo da poter fare

str.indexOf('s', start_index); 
2
var str = "www.google.com.sdg.jfh.sd"; 
var search = "sdg"; 
var start_index = str.substring(str.indexOf(search) + search.length).indexOf(".s");