虽然写的有点繁琐,但是的确时一个 正则实现了。 ^[a-zA-Z0-9]*([a-zA-Z][0-9]|[0-9][a-zA-Z])[a-zA-Z0-9]*$ 测试: var regex = /^[a-zA-Z0-9]*([a-zA-Z][0-9]|[0-9][a-zA-Z])[a-zA-Z0-9]*$/; var arr = ['abc', '123', 'a12', '1ab', 'ab1', '12a', 'a12', '1a2', '12.a']; var result = []; arr.forEach(function(val){ result.push({ val : val, match : regex.test(val) }); }); console.table(result);
虽然写的有点繁琐,但是的确时一个 正则实现了。
测试: