Javascript 我应该使用什么正则表达式来验证数字模式?

Javascript 我应该使用什么正则表达式来验证数字模式?,javascript,validation,Javascript,Validation,对于第一次验证,我尝试验证4位数字的输入,但是当我尝试运行它并输入4位数字时,错误仍然显示: function pCodeValidate() { var pCode = document.getElementById("postcode"); var pCodePattern = /^\d{4}$/; if (!(pCodePattern.test(pCode))){ errorList("post code must be 4 digits")

对于第一次验证,我尝试验证4位数字的输入,但是当我尝试运行它并输入4位数字时,错误仍然显示:

function pCodeValidate() {
    var pCode = document.getElementById("postcode");
    var pCodePattern = /^\d{4}$/;
    if (!(pCodePattern.test(pCode))){
        errorList("post code must be 4 digits")
    } 
    //return
}
第二种方法验证模式为“04dddddd,其中d是一个数字”的移动电话号码。这是我的代码:

function mNumberValidate() {
    var mNumber = document.getElementById("mobilenumber");
    var mNumberPattern = /^\d{10}$/;
    if (!(mNumberPattern.test(mNumber))){
        errorList("invalid mobile number");
    }
    //return
}

对于第二部分,我应该使用什么正则表达式来强制“04”成为输入中的第一个值?

第一个函数的问题是,您没有使用正则表达式来测试输入值,而是尝试测试对输入本身的引用。更改以下行:

var pCode = document.getElementById("postcode");
要获取值,请执行以下操作:

var pCode = document.getElementById("postcode").value;
在第二个函数中,您遇到了相同的问题,您将以相同的方式解决该问题:

var mNumber = document.getElementById("mobilenumber").value;
// --------------------------------- add this part >-^^^^^^
然后,以
04
开头的电话号码所需的正则表达式如下:

/^04\d{8}$/
即:

^     - beginning of string
04    - the literal characters "04"
\d{8} - any 8 digits
$     - end of string

(诡计多端的演示:)

@zb仅就我个人的知识而言,你能给我解释一下如何解释这个正则表达式吗?@timolawl是的,真的是的,我编辑了评论:)@zb谢谢你,我现在明白了非常感谢你的清晰解释。这就解决了问题