Découpe une chaîne de caractères à la nième occurrence d'un caractère
Ce que je veux faire est de prendre une chaîne telle que this.those.that
et obtenir une sous-chaîne ou de la n-ième occurrence d'un caractère. Ainsi, depuis le début de la chaîne à la 2ème apparition de .
serait de retour this.those
. De même, à partir de la 2ème apparition de .
à la fin de la chaîne de retour that
. Désolé si ma question est brumeux, il n'est pas facile à expliquer. Aussi, s'il vous plaît ne suggèrent pas de prise de variables supplémentaires, et le résultat sera une chaîne de caractères et non un tableau.
- Toute objection à la fente dans un tableau, puis de rejoindre les tranches de tableaux de nouveau ensemble? Il utilise des fonctions qui opèrent sur des chaînes ou de produire des chaînes de caractères.
- Il semble que vous connaissez déjà la réponse; le fractionnement de la chaîne sur votre séparateur et puis réformer une nouvelle chaîne avec les parties semble la meilleure option. Pourquoi vous limitez pas à pas à l'aide d'un tableau?
- Une chaîne de caractères est un tableau.
- Je n'étais pas assez précis. Je ne veux pas en faire une collection supplémentaire en plus de la chaîne. À l'aide de la matrice de fonctions sur la chaîne qui fonctionne pour ce que je suis en train de réaliser. Je vais corriger la question.
- Pourquoi ma réponse erronée?
- Je crois qu'on peut avoir interprété le cas des OP question différemment.
- Je vois. J'ai pris l'exemple que l'instance spécifique de n qu'il était intéressé par. Vous avez pris comme, pour tout n de produire un résultat et sélectionné une valeur différente pour n. Semble raisonnable. Je retire mon objection et de supprimer mon commentaire.
Vous devez vous connecter pour publier un commentaire.
Vous pourriez le faire sans tableaux, mais il faudrait plus de code et d'être moins lisible.
En général, vous ne voulez utiliser que la quantité de code pour faire le travail, et cela augmente la lisibilité. Si vous trouvez que cela est en train de devenir un problème de performances (benchmark c'), puis vous pouvez décider de commencer à refactoring pour la performance.
jsFiddle.
split()
pourrait prendre un deuxième argument. Je peux changer la réponse en fonction de.Essayez ceci :
"qwe.fs.xczv.xcv.xcv.x".replace(/([^\.]*\.){**nth**}/, '');
- où est le n-ième est le montant de l'événement à supprimer.Je suis perplexe quant à pourquoi vous voulez faire les choses uniquement avec les fonctions de chaîne, mais je suppose que vous pourriez faire quelque chose comme ce qui suit:
Cependant, j'aimerais vous recommande fortement pour quelque chose comme alex est beaucoup plus simple de code.
Juste au cas où quelqu'un a besoin à la fois de "ce" et "ceux qui.que" dans un sens comme alex l'a mentionné dans sa commentaire, voici le code modifié:
JS:
Si vous voulez vraiment en tenir à la chaîne de méthodes, puis: