[JavaScript] SELECT is broken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 18-09 04:26

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
Sorry, maar heb even geen betere topictitel.

Ik heb volgend stuk code
JavaScript:
1
var result = /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/gi.test(bic);


Om zoveel mogelijk variabelen uit te sluiten, heb ik het even omgeschreven naar:

JavaScript:
1
var result = /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/gi.test("ABNANL2A");


Je zou verwachten dat result altijd true is, maar op één of andere manier slaagt dat ding erin te alterneren tussen true en false.

Volgende opmerkingen kan ik hier nog bij geven:
  • Deze code hangt aan een jquery validator (en dus aan een event). Het alterneren gebeurt bij elke validatieslag (bv focus in, focus uit)
  • Als ik een break zet met Firebug, en de regel evalueer in de console (copy/paste), dan krijg ik altijd true (op elk moment in de functie).
Ik ben even outgunned door dit ding. Misschien ziet iemand iets stoms wat ik zelf over het hoofd zie?

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kijk eens wat de g flag doet ;)

En lees ook Waar hoort mijn topic? even.
PRG >> WEB

[ Voor 69% gewijzigd door RobIII op 22-04-2010 09:42 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 18-09 04:26

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
Moet ik daarvoor nou zo lang op Tweakers zitten :X :)

[ Voor 5% gewijzigd door GrimaceODespair op 22-04-2010 09:35 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
GrimaceODespair schreef op donderdag 22 april 2010 @ 09:35:
[...]

Moet ik daarvoor nou zo lang op Tweakers zitten :X :)
Ben je nou ook achter de oorzaak van je probleem?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 18-09 04:26

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
RobIII schreef op donderdag 22 april 2010 @ 09:36:
[...]

Ben je nou ook achter de oorzaak van je probleem?
Ik dacht van niet, daarom had ik het eerste deel van je quote snel weggehaald.

Maar inderdaad, zonder de global flag is-ie wel consequent true. Ik dacht altijd dat ik de global flag wel begreep en dat-ie hier gewoon overbodig, maar niet fout was.

Het volgende blijkt echter aan de hand:
| 15.10.6.2 RegExp.prototype.exec(string)
| [...]
|
| 15.10.6.3 RegExp.prototype.test(string)
|
| Equivalent to the expression RegExp.prototype.exec(string) != null.

The second call of RegExp.prototype.test() on that expression MUST return
`false' in a conforming implementation because there are no more matches for
the global-flagged regular expression, and RegExp.prototype.exec() would
therefore return `null'. That is also why the next call MUST return `true'
again as the matching index is reset and RegExp.prototype.exec() would not
return `null' (since there was a match), and why removing the `g' modifier
makes a difference.
Bedankt voor je pointer!

Wij onderbreken deze thread voor reclame:
http://kalders.be