Nota: se sei di fretta e / o stai cercando una risposta breve, scorri fino alla fine della risposta e leggi le ultime due righe. Se non hai fretta, leggi tutto.
vorrei iniziare affermando i fatti:
Sintassi:
string.slice(start,end)
string.substr(start,length)
string.substring(start,end)
Nota n. 1:slice()==substring()
Cosa fa?
Il slice()metodo estrae parti di una stringa e restituisce le parti estratte in una nuova stringa.
Il substr()metodo estrae parti di una stringa, iniziando dal carattere nella posizione specificata e restituisce il numero specificato di caratteri.
Il substring()metodo estrae parti di una stringa e restituisce le parti estratte in una nuova stringa.
Nota 2:slice()==substring()
Cambia la stringa originale?
slice()Non
substr()fa
substring()Non
nota # 3:slice()==substring()
Utilizzo dei numeri negativi come argomento:
slice()seleziona i caratteri a partire dalla fine della stringa
substr()seleziona i caratteri a partire dalla fine della stringa
substring()Non esegue la
nota n. 3:slice()==substr()
se il primo argomento è maggiore del secondo:
slice()non funziona
substr()poiché il secondo argomento NON è una posizione, ma un valore di lunghezza, funzionerà come al solito, senza problemi
substring()scambieranno i due argomenti e funzionerà come al solito
il primo argomento:
slice()Richiesto, indica: Indice iniziale
substr()richiesto, indica: Indice iniziale
substring()richiesto, indica: Indice iniziale
Nota n. 4:slice()==substr()==substring()
il secondo argomento:
slice()Opzionale, La posizione (fino a, ma non incluso) dove terminare l'estrazione
substr()Facoltativo, Il numero di caratteri da estrarre
substring()Opzionale, La posizione (fino a, ma non incluso) dove terminare l'estrazione
Nota # 5:slice()==substring()
E se il secondo argomento fosse omesso?
slice()seleziona tutti i caratteri dalla posizione iniziale alla fine della stringa
substr()seleziona tutti i caratteri dalla posizione iniziale alla fine della stringa
substring()seleziona tutti i caratteri dalla posizione iniziale alla fine della stringa
Nota # 6:slice()==substr()==substring()
quindi, puoi dire che c'è una differenza tra slice()e substr(), mentre in substring()pratica è una copia di slice().
in Riepilogo:
se conosci l'indice (la posizione) su cui ti fermerai (ma NON includi), Usa slice()
se conosci la lunghezza dei caratteri da estrarre substr().
sliceè quello con il comportamento meno imprevisto.