Comment sous-chaîne dans jquery

115

Comment puis-je utiliser jquery côté client pour la sous-chaîne "nameGorge" et supprimer "name" pour qu'il ne renvoie que "Gorge"?

var name = "nameGorge"; //output Gorge
Gorge
la source
15
jQuery est une bibliothèque écrite en JavaScript. Il est utilisé en plus de JavaScript. Ce que vous demandez peut être fait en JavaScript sans avoir à utiliser la bibliothèque jQuery du tout.
Jeff
1
jQuery IS JavaScript (une bibliothèque JavaScript pour être exact, mais JavaScript néanmoins). Cela étant dit, je ne pense pas que l'utilisation de jQuery pour obtenir une sous-chaîne puisse être écrite plus facilement qu'elle ne l'est déjà en JavaScript simple.
VoidKing

Réponses:

235

Aucun jQuery nécessaire! Utilisez simplement la méthode de sous-chaîne:

var gorge = name.substring(4);

Ou si le texte que vous souhaitez supprimer n'est pas statique:

var name = 'nameGorge';
var toRemove = 'name';
var gorge = name.replace(toRemove,'');
Justin Niessner
la source
5
Désolé, je ne m'attendais pas à ce que ça explose si fort après m'être endormi. J'ai nettoyé un peu les choses ici. En attendant, quelqu'un a besoin de lire ceci
BoltClock
Hey BoltClock: Comment ça va? J'essayais de prouver un point ici, merci beaucoup .. cela signifie que si j'essaie de réorganiser un code pour un client, et que je viens ici chercher une réponse, et la réponse marquée de l'op est satisfaisante pour lui. . alors je ne peux pas simplement poster la même question ni donner un exemple de mon problème .. très intéressant .. donc ma question était de savoir comment ces types sont-ils si sûrs que si j'exécute une fonction jQuery et que j'utilise .split je suis se référant à la manière native JS ou à une sorte de tunneling ou de proxy pour déclencher cela via jQuery. Aussi si vous lisez la question.
Jean Paul AKA el_vete
Mon point est que pour moi travaille dans l'espace de noms jQuery, je ne me soucie vraiment pas beaucoup si le cas est d'appeler directement string.split depuis JS, mais au lieu de cela de la communauté, j'ai compris que si je poste cette question exacte, il sera marqué comme restreint, car cette réponse est plus acceptée que le fait qu'il existe une référence de documentation jQuery.split quelque part me dit au moins que cela devrait être parce qu'elle est là sans donner de conflit à mon code et à tout le jQuery plugins que vous avez pu voir sur les images supprimées ... alors merci encore une fois
Jean Paul AKA el_vete
5
@JeanPaul - jQuery n'a pas de split (). Nous en avons déjà parlé. Les deux articles que vous avez liés à text () précédemment utilisés pour obtenir une chaîne JavaScript vanille, puis appelés string.split (). Vous avez tout simplement tort dans ce cas. Laisse tomber.
Justin Niessner
52

Utilisation .split(). (La deuxième version utilise .slice()et .join()sur le tableau.)

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

Utilisation .replace().

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

Utilisation .slice()sur une chaîne.

var result = name.slice( 4 );
utilisateur113716
la source
jquery ne prend pas en charge le remplacement. C'est Vanilla js
Jude
9

C'est tout simplement du JavaScript: voir substringet substr.

casablanca
la source
1
Ou bien slice(). Strange JS devrait avoir tant de façons de dire la même chose, toutes subtilement différentes. slice()est ma méthode préférée car elle se comporte de manière cohérente avec slice()les tableaux et autorise les index de début et de fin négatifs pour l'index-from-end.
bobince
@bobince: Vrai, et je ne me souviens jamais lequel de substringet substrprend un paramètre de longueur et lequel prend un index de fin - j'ai toujours besoin de consulter les documents pour le savoir.
casablanca
4

Vous n'avez pas besoin de jquery pour faire cela.

var placeHolder="name";
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length);
Maurizio Cucchiara
la source
J'ai besoin de le faire côté client et j'ai déjà jquery. Que suggérez-vous alors? Désolé pour la question simple, mais je suis assez débutant avec js et jquery.
Gorge du
Cette déclaration renverrait "nameGorge" car indexOf ("name") renverrait 0.
Justin Niessner
2
var name = "nameGorge";
name.match(/[A-Z].*/)[0]

la source
0

Oui, vous pouvez, bien que cela repose sur la fonctionnalité inhérente de Javascript et non sur la bibliothèque jQuery.

http://www.w3schools.com/jsref/jsref_substr.asp La substrfonction vous permettra d'extraire certaines parties de la chaîne.

Désormais, si vous recherchez une chaîne ou un caractère spécifique à utiliser pour trouver la partie de la chaîne à extraire, vous pouvez également utiliser la fonction indexOf. http://www.w3schools.com/jsref/jsref_IndexOf.asp

La question est cependant assez vague; même un simple lien de texte avec «nom» permettra d'obtenir le résultat souhaité. Quels sont les critères pour obtenir votre sous-chaîne, exactement?

Aaronofleonard
la source
1
Pourquoi avez-vous lié à la strposfonction de PHP dans une question sur JavaScript?
casablanca
Vous avez raison, trop de PHP pour moi aujourd'hui. J'ai édité avec l'équivalent JS approprié. Merci de l'avoir attrapé.
aaronofleonard
-1

Que diriez-vous de ce qui suit?

<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>
Jean Paul AKA el_vete
la source