Your regex works just as well in JavaScript as Java. Below is a short example using some data I made up.
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.');
}
}
Bonus tips:
You could simplify your regex some. The {1} is unnecessary, and you don't need to wrap the space in [].
^[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]$
Of course, you can leave in any () that you want for capture groups, but I don't know if you are using those.