对于第一次验证,我尝试验证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”作为输入中的第一个值?
答案 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/)