十位数的正则表达式

时间:2016-06-08 14:08:02

标签: javascript regex input

我的程序试图在文本字段中输入用户,如果用户输入的是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>

2 个答案:

答案 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>