2010-03-25 5 views
0

Je sais comment j'y arriverais en utilisant PHP, mais avec jQuery/JavaScript je ne sais pas comment faire, voici la chaîne à laquelle j'ai affaire (c'est l'attribut name d'un élément d'entrée):Récupérer une partie d'une chaîne en utilisant jQuery/JavaScript

Field[0][some_random_text] 

Je veux récupérer la valeur some_random_text et claque dans une variable, je suppose que je généralement utiliser regex pour accomplir cette tâche, mais ne sais pas comment cela se fait en JavaScript. Voici quelques caractéristiques de cet attribut de nom.

  • Il sera toujours dans ce format string[string][string]
  • Chacune des chaînes peut être une longueur

Comment puis-je obtenir la chaîne some_random_text?

Je voudrais m'en tenir à l'ensemble des fonctions standard si possible.

Répondre

3

Vous pouvez utiliser une expression régulière, comme ceci:

var part = /\]\[(.+?)\]$/.exec('Field[0][some_random_text]')[1] 
+1

+1 Parfait! À votre santé! –

0

en supposant Jquery. Si je comprends bien, vous essayez d'obtenir l'attribut name.

var nom = $ ("img"). Attr ("nom"));

"img" peut être tout d'un certain nombre de façons de choisir un élément, plus à http://api.jquery.com/attr/

+0

Il demande comment analyser une chaîne arbitraire. – SLaks

+0

Salut, je voulais vraiment obtenir une partie de la valeur de l'attribut, réponse SLaks a très bien réussi. Merci :) –

1

Je suis personnellement fan de split():

// name being the variable that is holding the string. 
name.split('[')[2].replace(']',''); 
+0

Malheureusement, je ne suis pas, mais merci beaucoup d'essayer! :) –

1

numéro de porte 4:

var s = "Field[0][some_random_text]"; 
var x = s.substring(s.lastIndexOf("[")+1, s.length - 1); 
alert(x); 
+0

Merci pour votre réponse aussi! Cela a effectivement fonctionné, serait intéressant (quand j'apprends comment: D) ​​de comparer la performance de votre réponse SLaks. Merci beaucoup! +1 –

+0

fait un test simple, une boucle de 100.000 itérations, méthode de sous-chaîne a pris 38ms, regex 396ms * gloat * :) – Les

Questions connexes