javascript:alert(/^(?=.*?[^0-9A-Za-z]|[^a-zA-Z])/.test('123'));
javascript:alert(/^(?=.*?[^0-9A-Za-z]|[^a-zA-Z])/.test('a123'));
javascript:alert(/^(?=.*?[^0-9A-Za-z]|[^a-zA-Z])/.test('a12=3'));
条件成立即为不合法.
javascript:alert(/^(?=.*?[^0-9A-Za-z]|[^a-zA-Z])/.test('a123'));
javascript:alert(/^(?=.*?[^0-9A-Za-z]|[^a-zA-Z])/.test('a12=3'));
条件成立即为不合法.
var pattern = /^(?![0-9A-Za-z](?:[0-9A-Za-z_]*[0-9A-Za-z])?$)/;
alert(pattern.test('_123'));
alert(pattern.test('123_'));
alert(pattern.test('a1_23'));
alert(pattern.test('1'));
alert(pattern.test('a12-3'));
</script>
<script type="text/javascript">
var pattern1 = /^(?!.*?__)[0-9A-Za-z](?:[0-9A-Za-z_]*[0-9A-Za-z])?$/;
var pattern2 = /^(?=.*?__|(?![0-9A-Za-z](?:[0-9A-Za-z_]*[0-9A-Za-z])?$))/;var assert = function () {
var args = Array.prototype.slice.call(arguments, 0)
, pat = args.shift()
, result = [];
while (args.length) result[result.push(args.shift()) - 1] += ':' + pat.test(result[result.length - 1]);
return result;
};
alert(
assert(
pattern1
, 'a12__3'
, '_123'
, '123_'
, 'a1_23'
, '1'
, 'a12-3'
).join('\n')
);alert(
assert(
pattern2
, 'a12__3'
, '_123'
, '123_'
, 'a1_23'
, '1'
, 'a12-3'
).join('\n')
);
</script>
在优化一下.../^[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)*$/
or
/^(?:[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)*)?$/
确实比我的简单,提醒一下,
楼主的要求是小写字母和数字.
所以,还能简单一些.HOHO
呃...
果然还是看跳跃了...
呵呵.../^[a-z0-9]+(?:_[a-z0-9]+)*$/
修正下...飘走...