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

时间:2016-05-01 03:51:41

标签: 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")
    } 
    //return
}

第二个验证具有模式“04dddddddd,其中d是数字”的移动电话号码。这是我的代码:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

(Dodgy demo:https://jsfiddle.net/xah6qstz/