让 RegExp.test() 为空值返回 false 的更简单方法?

use*_*933 1 javascript

let regex = /[a-z]+/;
regex.test('a'); // true
regex.test(''); // false
regex.test(null); // true
regex.test(undefined); // true
Run Code Online (Sandbox Code Playgroud)

因此,基于此链接,它是 Ecmascript 中的错误 - /\S/.test(null) 返回 true?,看起来空值被强制为字符串“空”。跆拳道?为什么要这样设计?我也找不到有关此行为的任何文档。有没有办法返回false空/未定义的值(在检查“空”等时没有硬编码)?

Bar*_*mar 5

如果你正在测试一个变量,你可以这样做:

regex.test(var || '')
Run Code Online (Sandbox Code Playgroud)

这样如果未设置,它将默认为空字符串。