[JS]Regex, woord word afgekapt

Pagina: 1
Acties:

Onderwerpen


  • BryanD
  • Registratie: September 2010
  • Laatst online: 24-07 15:06
Beste tweakers,
Ik heb een array waar ik met een for loop door heen ga en vervolgens kijk ik met regex naar de classname om een match te krijgen:

HTML:
1
2
<div class="classNummerEen"></div>
<div class="classNummerTwee"></div>

Ik heb beide div's dus in een array staan en met een for loop ga ik daar doorheen.
vervolgens heb ik de volgende regex pattern(s):

[code=js]
pattern1 = /class([a-z][A-Z])/i;
pattern2 = /class([a-z][A-Z])/i;
[code]

Vervolgens match ik de class met de pattern
ik krijg dan ook keurig mijn 2 classes terug...gedeeltelijk in iedergeval.
Ik krijg dit terug:

classNu

Ik heb het gevoel dat ik iets vergeet oid. maar goed voor de goede orde mijn complete scriptje:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
currentClass    = currentSlide.attr("class").split(" ");
nextClass       = nextSlide.attr("class").split(" ");
fxInPattern     = /fxin([a-z][A-Z])/i;
fxOutPattern    = /fxout([a-z][A-Z])/i;
            
for(var i = 0; i < currentClass.length; i++){
                
    matcher = currentClass[i].match(fxInPattern);
    if(matcher != null && matcher[0] != undefined){
        console.log(matcher);
    }
                    
}


Bijvoorbaat bedankt voor de hulp,
M.v.g

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 18:08

CoolGamer

What is it? Dragons?

Zoals het er nu staat match hij op "class" gevolgd door twee letters. De i op het einde zorgt ervoor dat het niet uitmaakt of het hoofdletters of kleine letters zijn. [a-z]+ zal er voor zorgen dat je alle letters matcht.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Verwijderd

Je matcht maar 2 tekens; eerst een kleine letter en daarna een hoofdletter. Als je alle leestekens wilt matchen kun je beter (\w+) of ([a-z]+) doen; je match nl al case insensitive (die /i achter je regex).

  • BryanD
  • Registratie: September 2010
  • Laatst online: 24-07 15:06
Dank u heren, de [a-z]+ werkt perfect, ik ben nog echt een regex noob, ingewikkeld :P maar goed hartstikke bedankt voor de quick response. en idd dat van [A-Z] snap ik nu ik er op terug kijk ook niet helemaal meer...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

On another note....waarom zet je het woord "class" voor je classes? Jij je ook op een fietsBatavus of een in autoFord?

[ Voor 5% gewijzigd door NMe op 10-02-2011 15:10 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28
NMe schreef op donderdag 10 februari 2011 @ 15:10:
On another note....waarom zet je het woord "class" voor je classes? Jij je ook op een fietsBatavus of een in autoFord?
code:
1
2
fxInPattern     = /fxin([a-z][A-Z])/i; 
fxOutPattern    = /fxout([a-z][A-Z])/i;


Luierd

Persoonlijk zou ik dit overigens oplossen met data-attributen ipv classes te proberen te ontleden.

code:
1
<tag ... data-fxin="bounce" data-fxout="fade">

[ Voor 19% gewijzigd door Bosmonster op 10-02-2011 15:19 ]


Verwijderd

Je regexen moeten zijn:
JavaScript:
1
2
var fxInPattern     = /fxin([a-z]*)/i; 
var fxOutPattern  = /fxout([a-z]*)/i;


Resultaat:
- string begint met fxin/fxout
- return bevat alleen letters (a t/m z)
- return is minimaal 1 lang, het liefst zo lang mogelijk
- is niet hoofdletter gevoelig

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Daar was 'ie al over uit. Bovendien is jouw * ook niet goed, dat moet een + zijn. Anders match je ook fxin en fxout zonder verdere toevoeging.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1