javascript 正则表达式测试仅适用于 6 位数字。逗号分隔

Nor*_*ird 3 javascript regex

所以这必须通过:

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)