Votre regex fonctionne aussi bien en JavaScript qu'en Java. Voici un petit exemple utilisant des données que j'ai inventées.
var regex = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;
var testData = [
// valid
'A11 1AA',
'a1 1aa',
'Aa1a 1AA',
'aA11 1aa',
'Aa1 1AA',
// invalid
'aa1aa 1aa',
'@a11 1aa',
'a1aa 1aa'
];
for (var i = 0; i < testData.length; i++) {
if (testData[i].match(regex)) {
console.log(testData[i] + ' is valid.');
} else {
console.log(testData[i] + ' is invalid.');
}
}
Des conseils bonus :
Vous pourriez simplifier un peu votre regex. Le site {1}
est inutile, et vous n'avez pas besoin d'envelopper l'espace dans []
.
^[a-zA-Z]([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]) [0-9][a-zA-z][a-zA-z]$
Bien sûr, vous pouvez laisser dans n'importe quel ()
que vous voulez pour les groupes de capture, mais je ne sais pas si vous les utilisez.