正则表达式验证号码和捷克语“PSČ”

时间:2016-02-01 13:31:34

标签: javascript regex

这是一个如此简单的问题,但我不知道如何解决它。

1)电话号码

  • 在我们国家,我们需要以“+420”
  • 开头
  • 之后我们有9个号码(不多,少数)

这就是我所拥有的:

reg_telefon = new RegExp(/\+420[0-9]{9}/g);

这有效,但只有当我写9个数字时它仍然可以,但是如果我输入的数字超过9个,那么RegEx似乎没问题,但这是失败的。

2)捷克语PSČ中的类似错误。如何写它有两种方式:

  1. 12345(5号不多,少数)
  2. 123 45(3个数字+空格+ 2个数字)。不允许更多或更少的数字。
  3. 这就是我所拥有的:

    reg_psc = new RegExp(/\d{3} ?\d{2}/mg);
    

    只有当我们用1个空格写了5个数字或5个数字时才有效..没关系,但如果我们写15个数字这个RegEx就可以了,这是错误的..

    我试过这些RegEx添加如reg_psc = new RegExp(/(\ d {3}?\ d {2}){1} / mg);但它不起作用......我试过“?”,“+?”,“{1,1,}”等......没有任何帮助。我的意思是这是新手的错误,但我看不出来......

1 个答案:

答案 0 :(得分:1)

正则表达式查找字符串是否包含与给定模式匹配的,而不是整个匹配给定模式。

如果您的号码d1.toString() === d2.toString() 匹配,则因为blahblah+42012345678900000部分匹配。您需要某种分隔符/分隔符,如行尾/字符串(+420123456789)或空格($)等,以标记分析字符串的结尾。与你的另一个例子相同。