javascript - 固定位数的正则表达式?

标签 javascript regex digits

我正在完成作业中必须做的表格,就在我以为自己完成时,我发现了一个错误。

我需要一个用于输入字段的正则表达式,如果没有恰好是 13 位数字,它会返回一个警报。

虽然我知道正确的 RegExp 是:/^\d{13}$/,但我还需要它来忽略空字段。 (因为我不希望在用户切换到不同的输入字段时触发警报)

就在我以为我有它的时候:/^$|\d{13}$/,事实证明,如果少于 13 位数字,它会返回一个警报,但如果还有更多,不像 /^\d{13}$/ 可以很好地处理 14 位以上的数字。

有人可以帮我解决这个问题吗?谢谢

这是函数的其余部分:

        function checkNum(box) {
        var re= new RegExp(/^$|\d{13}$/);
        if(!box.value.match(re)) {
            alert("13 numbers are required");
            document.getElementById("numbers").value = '';
        }
    }

这里是输入框:

<input type="text" name="numbers" id="numbers" placeholder="Numbers" onFocus="this.placeholder=''" onBlur="checkNum(this); this.placeholder='Numbers'"/>

最佳答案

非常接近!

/^$|^\d{13}$/

你只是忘了指定从字符串开头开始的13位数字

关于javascript - 固定位数的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435700/

相关文章:

javascript - 如何设置字段的要求级别

javascript - 如何用数字加特殊字符替换字符串中的所有数字?

javascript - 如何避免循环遍历多个数组

C 编译器警告 Unknown escape sequence '\.' using regex for c program

php - 如何 preg_match 特定的圣经经文并检索每种情况下的书籍、章节和经文

安卓 : How to set acceptable numbers and characters in EditText?

c++ - 如何将输入值拆分为 4 位 vector ,例如将 n 位拆分为每个部分 vector 的半字节?

javascript - 使用 JavaScript 获取位数

javascript - jQuery UI 自动完成选择项目后触发新事件

javascript - 在Javascript中添加元素时的动态div