Я думаю, что это не похоже на ответ, но Node.js настоящим выводит:
true true
Вот терминальная консоль.
PS E:\DevRoom\Kindy> node
> str = '////'
'////'
> re = /^\/+$/g
/^\/+$/g
> console.log(str && re.test(str), str && !re.test(str))
true true
undefined
>
![enter image description here](https://i.stack.imgur.com/JIzAa.png)
Могу поспорить, что это происходит из-за повторного использования глобального регулярного выражения.
var regex1 = RegExp('foo*');
var regex2 = RegExp('foo*','g');
var str1 = 'table football';
console.log(regex1.test(str1));
// expected output: true
console.log(regex1.test(str1));
// expected output: true
console.log(regex2.test(str1));
// expected output: true
console.log(regex2.test(str1));
// expected output: false