2010-11-08 10 views
116

Come posso utilizzare jquery sul lato client alla sottostringa "nomeGorge" e rimuovere "nome" in modo che emetta solo "Gorge"?Come sottostringa in jquery

+15

jQuery è una libreria scritta in JavaScript. È usato su JavaScript. Quello che chiedi può essere fatto in JavaScript senza la necessità di usare la libreria jQuery. – Jeff

+1

jQuery IS JavaScript (una libreria JavaScript per essere esatta, ma JavaScript, comunque). Detto questo, non penso che usare jQuery per ottenere una sottostringa possa mai essere scritto in modo più semplice di quanto non lo sia già nel diritto JavaScript. – VoidKing

risposta

236

No jQuery necessario! Basta usare il metodo substring:

var gorge = name.substring(4); 

Oppure, se il testo che si desidera rimuovere non è statica:

var name = 'nameGorge'; 
var toRemove = 'name'; 
var gorge = name.replace(toRemove,''); 
+5

Scusa, non mi aspettavo che questo esplodesse così tanto dopo che sono andato a dormire. Ho ripulito un po 'le cose qui. Nel frattempo, qualcuno deve leggere [questo] (http://meta.stackexchange.com/questions/19478/the-many-memes-of-meta/19492#19492) – BoltClock

+0

Hey BoltClock: come va? Stavo cercando di dimostrare un punto qui, grazie mille .. quindi questo significa che se sto cercando di rinnovare un codice per un cliente, e io vengo qui a cercare una risposta, e la risposta contrassegnata dell'opzione è soddisfacente per lui. quindi non posso semplicemente postare la stessa domanda né dare un esempio del mio problema .. molto interessante .. quindi la mia domanda era: come sono questi ragazzi così sicuri che se sto eseguendo una funzione jQuery e dentro io uso .split facendo riferimento alla modalità JS nativa o una sorta di tunneling o proxy per attivarla tramite jQuery. Anche se leggi la domanda. –

+0

Il mio punto è che per me funziona all'interno dello spazio dei nomi jQuery, non mi interessa molto se il caso è quello di chiamare direttamente string.split da JS, ma invece dalla comunità ho capito che se inserisco quella domanda esatta , sarà contrassegnato come restretto, in quanto questa risposta è più accettata rispetto al fatto che esiste un riferimento alla documentazione jQuery.split da qualche parte per me almeno mi dice che dovrebbe essere perché è lì senza dare alcun conflitto al mio codice e tutto il jQuery si collega alle immagini cancellate che hai visto ... quindi grazie ancora una volta –

4

Non è necessario jquery per farlo.

var placeHolder="name"; 
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length); 
+0

Ho bisogno di farlo sul lato client e ho già jquery. Che cosa stai suggerendo allora? Ci scusiamo per la semplice domanda, ma sono abbastanza un principiante con js e jquery. – Gorge

+0

Tale affermazione restituirebbe "nomeGorge" perché indexOf ("nome") restituirebbe 0. –

+0

Hai ragione Ho modificato lo script, ora Dovrebbe funzionare –

9

Questo è semplicemente JavaScript: vedi substring e substr.

+1

Oppure ['slice()'] (http://docs.sun.com/source/816-6408-10/string.htm#1194366). Strange JS dovrebbe avere tanti modi per dire la stessa cosa, tutte sottilmente diverse. 'slice()' è il mio metodo preferito in quanto si comporta in modo coerente con 'slice()' sugli array e consente indici di inizio e fine negativi per index-end. – bobince

+0

@bobince: Vero, e non ricordo mai quale di 'substring' e' substr' richiedono un parametro length e che prende un indice finale - ho sempre bisogno di cercare i documenti per scoprirlo. – casablanca

52

Utilizzo di .split(). (Seconda versione utilizza .slice() e .join() sulla Array.)

var result = name.split('name')[1]; 
var result = name.split('name').slice(1).join(''); // May be a little safer 

Utilizzando .replace().

var result = name.replace('name',''); 

Utilizzo di .slice() su una stringa.

var result = name.slice(4); 
+0

fantastico riassunto delle opzioni di manipolazione delle stringhe! Grazie. – Damon

+0

sì, mi piace il suo approccio qui. +1 –

+0

jquery non supporta la sostituzione. Questo è Vanilla js – Jude

0

Sì, è possibile, anche se si basa sulla funzionalità intrinseca di Javascript e non sulla libreria jQuery.

http://www.w3schools.com/jsref/jsref_substr.asp La funzione substr consente di estrarre alcune parti della stringa.

Ora, se si sta cercando una stringa specifica o un carattere da utilizzare per trovare quale parte della stringa da estrarre, è possibile utilizzare anche la funzione indexOf. http://www.w3schools.com/jsref/jsref_IndexOf.asp

La domanda è alquanto vaga; anche solo link text con 'nome' raggiungerà il risultato desiderato. Quali sono i criteri per ottenere la sottostringa, esattamente?

+1

Perché ti sei collegato alla funzione 'strpos' di PHP in una domanda su JavaScript? – casablanca

+0

Hai ragione, troppo PHP per me oggi. Ho modificato con l'equivalente JS appropriato. Grazie per averlo preso. – aaronofleonard

2
var name = "nameGorge"; 
name.match(/[A-Z].*/)[0] 
-1

Che ne dici di quanto segue?

<script charset='utf-8' type='text/javascript'> 
    jQuery(function($) { var a=$; a.noConflict(); 
    //assumming that you are using an input text 
    // element with the text "nameGorge" 
    var itext_target = a("input[type='text']:contains('nameGorge')"); 
    //gives the second part of the split which is 'Gorge' 
    itext_target.html().split("nameGorge")[1]; 
    ... 
    }); 
</script>