如何开玩笑地测试此正则表达式

时间:2018-08-14 22:40:41

标签: javascript jestjs

我有这条线需要用玩笑来测试

export const matchUriRE = /^([^:]*):([^:]*):(.*)$/;

如何测试? 提前致谢。

3 个答案:

答案 0 :(得分:5)

我知道这个问题现在已经很老了,我甚至不知道在提出问题时是否已经存在以下解决方案,但是我认为 Jest 最多的方式是:< / p>

it('matches URI', () => {
  const uriRegEx = /^([^:]*):([^:]*):(.*)$/;
  const uri = 'http://google.com:4443/'; 
  expect(uri).toMatch(uriRegEx);
});

如果出现故障,可能还会产生更具描述性的错误消息。

进一步的参考:https://jestjs.io/docs/en/expect#tomatchregexporstring

答案 1 :(得分:2)

您只需要将导出的const导入到您的测试文件中。试试这个:

regexp.js

export const matchUriRE = /^([^:]*):([^:]*):(.*)$/;

regexp.spec.js

import { matchUriRE } from './regexp';

describe('RegExp: URI', function(){
  it('should match the expected URI', function(){
    // include all the various cases to test the regexp against here
    // example:
    const uri = 'http://google.com:4443/'; 
    expect(matchUriRE.test(uri)).toBe(true);
  });
});

答案 2 :(得分:1)

if (typeof fields["emailid"] !== "undefined") {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    if (!pattern.test(fields["emailid"])) {
      formIsValid = false;
      errors["emailid"] = "*Please enter valid email-ID.";
    }
}