所以这必须通过:
454555, 939999 , 019999 ,727663
Run Code Online (Sandbox Code Playgroud)
它适用于输入 6 位发票编号的用户。如果数字是 5 或 7 位数字而不是 6 位,则它应该失败。因此1234567, 123456应该失败,因为一组超过 6 个数字。
到目前为止我有:
[0-9]{6}(\s*,*,\s*[0-9]{6})*
Run Code Online (Sandbox Code Playgroud)
唯一的缺点是它接受 7 位或更多位数字。无法弄清楚此时是否有可能同时执行这两项操作,测试由逗号和一个或多个空格分隔的 6 位数字,并且所有数字必须只有 6 位,如果不是,则失败。
任何帮助表示赞赏。正则表达式不是我的强项。
谢谢
诺曼
小智 5
您可以像下面的函数一样使用正则表达式编写它。
const isPassword = (password: string) => /^\d{6}$/gm.test(password);
Run Code Online (Sandbox Code Playgroud)
这是下面的示例测试文件。
test('should recognize a valid password', () => {
expect(isPassword('123456')).toBe(true);
expect(isPassword('000000')).toBe(true);
});
test('should recognize an invalid password', () => {
expect(isPassword('asdasda1234')).toBe(false);
expect(isPassword('1234567')).toBe(false);
expect(isPassword('a123456a')).toBe(false);
expect(isPassword('11.11.11')).toBe(false);
expect(isPassword('aaaaaa')).toBe(false);
expect(isPassword('eeeeee')).toBe(false);
expect(isPassword('......')).toBe(false);
expect(isPassword('werwerwerwr')).toBe(false);
});
Run Code Online (Sandbox Code Playgroud)