The following code:
var re = /^[A-Za-z_][A-Za-z0-9_]*$/g;
console.log('1', re.test('_1Test_TEST'));
console.log('2', re.test('test'));
console.log('3', re.test('test'));
console.log('4', /^[A-Za-z_][A-Za-z0-9_]*$/g.test('_1Test_TEST'));
console.log('5', /^[A-Za-z_][A-Za-z0-9_]*$/g.test('test'));
console.log('6', /^[A-Za-z_][A-Za-z0-9_]*$/g.test('test'));
outputs:
1 true
2 false
3 true
4 true
5 true
6 true
Why is case 2 failing (when case 3,5 & 6 are passing)?
Tried in both node 4.2 and 6.2