j'ai un problème pour obtenir toute la requête de l'URL en utilisant la fonction toQueryParams du cadre de protoypejs eG:Obtenir toute la requête de l'URL
var a = "http://anypage.com?a=lol&b=lal&c=laoa?&d=fehw#lalalalalSomeAnchor";
a.toQueryParams();
>> {d: 'fehw'}
what i want to get:
>> {a: 'lol', b: 'lal', c: 'loaa?', d: 'fehw'}
je sais que url est invalide, mais je veux prétraiter que url pour échapper à ses valeurs avant de l'envoyer au serveur.
J'ai essayé de changer l'expression régulière de fonctions pour correspondre seulement aux caractères entre le premier? et le dernier #, j'ai déjà une expression/(\\\ ") qui fonctionnerait pour moi mais je veux même exclure le? et #, j'espère que quelqu'un d'entre vous peut m'aider :)
btw. cette page ci-dessous est de construire regexp impressionnant en temps réel: P http://regexpal.com/
Mise à jour: grâce à DaveRandom :) pour ceux qui veulent résoudre ce problème directement dans la ligne suivante framwork remplacer par:
L625: var match = this.strip().match(/\?([^#]*)/); // (/([^?#]*)(#.*)?$/); default
Je ne suis pas sûr, mais il ne semble pas fonctionner soit: http://jsfiddle.net/pimvdb/rWE62 /. Le prototype semble lire tout après le dernier '?'. – pimvdb
Vous devez encoder vos variables URL. Utilisez encodeURIComponent ("value"); avant de l'ajouter à votre URL. –
Ce qui précède fonctionne pour moi (me donne '' a = lol & b = lal & c = laoa? & D = fehw' qui est ce qui est nécessaire, n'est-ce pas?), Avec la mise en garde que la chaîne Cela, je crois qu'il est impossible d'éviter avec cette opération (bien que je puisse me tromper, quelqu'un s'il vous plaît corrigez-moi s'ils savent le contraire). Vous pouvez toujours 'substr()' le premier '?' Off. – DaveRandom