Volledige versie bekijken : text.search met jokertekens
jonasvermeulen
%Europe/Berlin %640 %2009, 16:22
hi,
ik zit met het vlgnde,
zou dat kunnen om in de functie search een joker teken toe te passen?
(bv * zoals in zoeken in windows of in word)
bv, ik heb een invoer vak met de volgende tekst in :
<img scr="http://blbalbala.com/1.img"/>
en ik heb dan deze code:
tekstvak.htmlText.search("<img scr="*"/>"));
ik krijg dan de fout dat ik string probeer om te zetten naar number, maar hoe moet dat dan wel?
Sjoedzj
%Europe/Berlin %661 %2009, 16:53
een variabele gebruiken ipv * en je moet het dan zo doen:
tekstvak.htmlText.search("<img scr="+url+"/>"));
jonasvermeulen
%Europe/Berlin %744 %2009, 18:51
tekstvak.text = "<img scr=http://yourgamerpage.byethost10.com/avatars/noavatar.png/>";
var url:String;
trace(tekstvak.htmlText.search("<img scr="+url+"/>"));
ik krijg nu als uitvoer van de trace -1
?? wat wil hij daarmee bedoelen??
mknol
%Europe/Berlin %794 %2009, 20:04
-1 is niet gevonden
Dit zou wat anders moeten geven.
tekstvak.text = "<img scr=http://yourgamerpage.byethost10.com/avatars/noavatar.png/>";
var url:String= "http://yourgamerpage.byethost10.com/avatars/noavatar.png";
trace(tekstvak.htmlText.search("<img scr="+url+"/>"));
Eigenlijk moet je hiervoor gewoon een regexp gebruiken.
jonasvermeulen
%Europe/Berlin %799 %2009, 20:11
ik weet niet of ik het juist heb, maar een RegExp is meer zo iets als een mask voor een textvak?
dat is niet wat ik zoek, ik probeer de url van een img uit een stuk text te filteren, zodat ik dan met die url de afmetingen van die img kan verkrijgen en zo het formaat van mijn textvak groot genoeg maken (een textvak resized spijtig genoeg niet mee als je er een img aan toevoegd met html text :())
het is dus ook niet de bedoelding dat de url op voorhand is opgegeven,
vandaar dat ik met een soort jokerteken wou werken, zodat die url willekeurig kan zijn
Dauntless
%Europe/Berlin %815 %2009, 20:33
Nee, een RegExp, oftewel een Reguliere Expressie is een soort van mini-taal die je toelaat om patronen te zoeken in een string. Dat is dus exact wat je nodig hebt.
Als je weet dat de urls altijd hetzelfde geformateerd zullen zijn (<img src="...".>) kan je het zo doen:
<img scr="(?<url>[^"]*)"/>
Bekijk in de helpfiles even de RegExp classe en de String.search methode. Het moeilijkste deel (de expressie zelf) heb je al.
jonasvermeulen
%Europe/Berlin %835 %2009, 21:03
ik heb nu dit stukje code:
var str:String = '<img scr="http://yourgamerpage.byethost10.com/avatars/noavatar.png"/>';
var pattern:RegExp = /<img scr="(?<url>[^"]*)"\/>/;
trace(pattern.exec(str));
nu krijg ik als uitvoer wel 2 dingen?
<img scr="http://yourgamerpage.byethost10.com/avatars/noavatar.png"/>,http://yourgamerpage.byethost10.com/avatars/noavatar.png
het zou extreem handig zijn om het stuk na de komma te weten
maar hoe?
Dauntless
%Europe/Berlin %840 %2009, 21:10
Dat is omdat je een array traced. Ik heb de regex zo geschreven zodat je dat heel eenvoudig kunt opvragen:
trace(pattern.exec(str).url);
Enjoy :)
jonasvermeulen
%Europe/Berlin %279 %2009, 07:42
dank je wel,
ik heb hier veel van opgestoken ;)
jonasvermeulen
%Europe/Berlin %407 %2009, 10:47
met die .url werkte het niet, maar ik heb gewoon de row 1 van de array uitgelezen
nogmaals bedankt
var str:String = '<img scr="http://yourgamerpage.byethost10.com/avatars/noavatar.png"/>' (http://yourgamerpage.byethost10.com/avatars/noavatar.png%22/%3E');
var pattern:RegExp = /<img scr="(?<url>[^"]*)"\/>/;
trace(pattern.exec(str)[1]);
Dauntless
%Europe/Berlin %500 %2009, 13:00
Vreemd, zou moeten werken ... Maar het komt idd op hetzelfde neer als je [0] gebruikt.
jonasvermeulen
%Europe/Berlin %801 %2009, 19:14
ik heb nu opnieuw dit willen gebruiken, maar om de ene of de andere manier werkt het niet meer
ik heb nu dit stukje code
var myPattern:RegExp = /<img scr="(?<url>[^"]*)"\/>/;
trace(messages[i+1]);
var str:String = messages[i+1];
trace(myPattern.exec(messages[i+1]));
en ik krijg dit als uitvoer:
hallo <img src="http://www.google.be/intl/en_com/images/logo_plain.png" />
null
waarom er nu niets gevonden wordt weet ik niet, de tekst zit in messages[i+1] en bevat een url
is er iets mis met mijn RegExpr?
alvast bedankt ;)
Dauntless
%Europe/Berlin %975 %2009, 23:25
src <=> scr
var myPattern:RegExp = /<img src="(?<url>[^"]*)"\/>/;
jonasvermeulen
%Europe/Berlin %766 %2009, 18:24
ook nu nog krijg ik als resultaat null
Dauntless
%Europe/Berlin %791 %2009, 19:00
Omdat er een spatie staat tussen de string en de />.
var myPattern:RegExp = /<img src="(?<url>[^"]*)"(\s)*\/>/;
var str:String = 'hallo <img src="http://www.google.be/intl/en_com/images/logo_plain.png" />';
trace(myPattern.exec(str));
jonasvermeulen
%Europe/Berlin %816 %2009, 19:36
idd :D, hartelijk bedankt
(is er btw een goede site die uitlegt hoe je zo een reguliere expressie kan maken? ik heb al gegoogeld, maar vind niet echt iets bruikbaars)
Dauntless
%Europe/Berlin %900 %2009, 21:36
http://www.google.be/#hl=nl&source=hp&q=regular+expressions&btnG=Google+zoeken&meta=&aq=f&oq=regular+expressions&fp=db5ca611f04784d3
1e hit is een van de betere.
jonasvermeulen
%Europe/Berlin %382 %2009, 09:10
ow thx, ik had in het Nederlands gegoogeld
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.