2011-03-08 4 views
0

Je suis arrivé cette expression regex de REGEXlib et, fondamentalement, il vérifie pour voir si elle est une plaque valide au Royaume-Uni DVLA Nombre i ne peut cependant pas obtenir de travailler dans JavaScript quelqu'un pourrait s'il vous plaît aider comme je ne suis pas le meilleur avec regex comme c'est.Regex ne fonctionne pas

//On change event for the textbox plate text 
function setValue(target){ 
     var platetext = target.value; 
     $('#numberplateyellow').empty(); 
     $('#numberplatewhite').empty(); 


     var plateregex = /([A-HJ-PR-Y]{2}([0][1-9]|[1-9][0-9])|[A-HJ-PR-Y]{1}([1-9]|[1-2][0-9]|30|31|33|40|44|55|50|60|66|70|77|80|88|90|99|111|121|123|222|321|333|444|555|666|777|888|999|100|200|300|400|500|600|700|800|900))[ ][A-HJ-PR-Z]{3}$/; 

     if (document.platebuilder.target.value.search(plateregex)==-1){ 

     var answer = window.confirm ("Non LEGAL Plate Detected (YES WE WILL SHOW THE AGREE BOX ONCE I HAVE IT FROM TOM) \n\n Do you understand that this is now classed as a show plate ?"); 

     if (answer) { 
     $('#numberplateyellow').append(platetext); 
     $('#numberplatewhite').append(platetext); 
     } 

     } 

} 

Merci

+1

Besoin de plus d'informations. Pouvez-vous donner des exemples d'entrées? Comment ça va mal? Pourquoi comparez-vous document.platebuilder.target.value, on dirait que c'est un platetext qui doit être comparé? –

+0

Êtes-vous sûr que 'document.platebuilder.target' est le même que l'argument de la fonction' target'? – LHMathies

+0

Il y a plus: http://regexlib.com/Search.aspx?k=dvla&c=-1&m=-1&ps=20 – mplungjan

Répondre

1

Vous confondez jQuery et script standard.

changement var platetext = target.value;

à

var platetext = target.val();

et

if (document.platebuilder.target.value.search(plateregex)==-1){

à

if (!platetext.match(plateregex)) {

+0

le travail na pas target.val mais le match a fonctionné: D merci – user393273