2012-11-24 5 views
0

J'apprécierai vraiment votre aide. Ce qui se passe est que mon code obtient une chaîne vía ajax à partir d'un fichier php. Le fichier php renvoie une longue chaîne contenant les éléments suivants: "css":["DSK\/y"],"js":["V5Llk","1dVnw"],"onload":["goURI(\"\\\/procedure\\\/376993639056176\\\/?context=create\");"],"bootloadable":{"IframeShim":{"resources":[....Expression régulière entre deux mots

Ce que je veux est d'obtenir le numéro 376993639056176 avec javascript qui est une variable de serveur et de garder un processus avec elle. Pouvez-vous m'aider s'il vous plaît?

+0

Et ce nombre * toujours * 15 chiffres longs? Est-il toujours précédé de '/' et suivi de '\\\'? Quelles parties de cette chaîne seront cohérentes? La partie clé des expressions régulières est qu'elles peuvent être utilisées pour faire correspondre le contenu d'une chaîne régulièrement mise en forme. Si la chaîne * n'est pas * régulière (ou n'est pas formatée de façon prévisible), alors regex commence à échouer. Et que voulez-vous dire par «... et garder un processus avec»? Affectez-le à une variable, appelez une fonction, initiez une ou une autre requête Ajax ..? –

+0

Quel est le '...' sur votre question? S'il vous plaît poster le résultat complet –

+0

@DavidThomas nope, c'est une chaîne numérique, mais il vient toujours après le mot "procédure" avec le \\\ /. Merci –

Répondre

0

Votre serveur renvoie un JSON avec plusieurs informations et vous voulez que la partie numéro de la propriété "onload" de celui-ci. Vous pouvez faire la

suivante La fonction suivante ne recevra que les chiffres de votre chaîne

var serverJSONString = stringReturnedByServer(); 
var longUri = serverJSONString.onload[0]; //This will get only the "onload" string; 
var decodedNumber = longUri.replace (/[^\d]/g, ""); 
alert(decodedNumber); 

Voici un fiddle

+0

D'accord, je n'étais pas très clair. Je viens d'éditer la question, pouvez-vous la vérifier s'il vous plaît? Merci! : D –

+0

J'ai fait une modification pour couvrir ce que vous n'avez pas posté avant –

0

fonctionnelle Si les seuls chiffres dans cette chaîne sont en fait ceux que vous cherchez pour vous pouvez utiliser une regex comme

var regex = new RegExp("[^0-9]*([0-9][0-9]*)[^0-9]*","g") 
var number = yourString.replace(regex,"$1"); 
+0

Mais ce n'est pas la seule chaîne numérique. –

+0

Alors, quel est le modèle fixe? l'onload ": [" goURI (\ "\\\/procedure \\\/WHATEVER_IS_HERE \\\ /? ....? ou même la chaîne goURI peut être différente? – pabrantes

Questions connexes