我的程序试图在文本字段中输入用户,如果用户输入的是10位数字(开头的数字为0或者任何一个排序计数),当他们按下复选按钮时将收到一个警报,说明他们的电话号码是什么,否则他们会收到警告,告诉他们输入正确的号码。
然而,每当我按下按钮时,没有任何变化。我相信我的正则表达式和函数中存在一个问题,但我不确定如何编写一个正则表达式来搜索表单结果中有10位数的特定模式。
以下是我的代码的相关部分。
<form name = submitnumber">
<input type = "text" size = "15" name = "inputnumber"></input>
<button type = "button " onclick = "checknumber()">Check</button>
</form>
<script type "text/javascript">
function checknumber() {
var tendigitnum = /^\d+${10}/;
var input_num = document.getElementByName("inputnumber")
if (input_num.search(tendigitnum)) {
window.alert("You entered: " + input_num);
} else {
window.alert("Please enter a valid 10 digit number!");
}
}
</script>
答案 0 :(得分:2)
你的正则表达式的语法是错误的。
成功
var tendigitnum = /^\d{10}$/;
并将其用作
tendigitnum.test("2342343434"); //outputs true
此外,没有getElementByName
这样的方法,您需要使用getElementsByName
并返回多个元素。做到这一点
var input_num = document.getElementsByName("inputnumber")[0].value;
答案 1 :(得分:1)
您需要将正则表达式更改为有效的
var tendigitnum = /^\d{10}$/;
并使用
正确访问元素的值document.getElementsByName("inputnumber")[0].value
你需要与
进行匹配if (input_num.match(tendigitnum)) {
//
}
function checknumber() {
var tendigitnum = /^\d{10}$/;
var input_num = document.getElementsByName("inputnumber")[0].value;
if (input_num.match(tendigitnum)) {
alert("You entered: " + input_num);
} else {
alert("Please enter a valid 10 digit number!");
}
}
<form name = submitnumber">
<input type="text" size="15" name="inputnumber"></input>
<button type="button" onclick="checknumber()">Check</button>
</form>