正常表达从00001到99999

时间:2018-03-11 21:50:30

标签: java regex

我正在使用正则表达式,我想要从0000199999的数字。它应该有5位数。

我知道我可以使用[0-9]{5},但我的号码为00000,但应该从00001开始。

3 个答案:

答案 0 :(得分:2)

(?!00000)[0-9]{5}

前缀(?!00000)可确保您不匹配;它被称为负向前瞻。 现场演示here

答案 1 :(得分:2)

这个相当难看的正则表达式要求5位数中的至少一个不是零。因此,失败的唯一5位数字是00000.但我认为必须有更优雅的方式。

^([1-9]\d{4}|\d[1-9]\d{3}|\d{2}[1-9]\d{2}|\d{3}[1-9]\d|\d{4}[1-9])$

答案 2 :(得分:1)

// Add dismissible prototype to all elements
HTMLElement.prototype.dismissible = function (options) {
    this.querySelector("[data-dismissible-hide]").addEventListener("click", function (event) {
        event.preventDefault();
        this.dismiss(options);
    })
};

// Add "dismiss" prototype to all elements
HTMLElement.prototype.dismiss = function (options) {
    // Ajax Call
}

// Abstraction to be able to call dismissible() on entire nodelists
NodeList.prototype.dismissible = function (options) {
    this.forEach(el=>{
        el.dimissible(options)
    })
}

// The actual call
document.querySelectorAll("[data-dismissible]").dismissible();

说明:

  • 否定前瞻(?!00000) - 断言正则表达式与之匹配
  • [0-9] 0到9之间范围内的单个字符
  • {5}完全匹配5次