นิพจน์ทั่วไปสำหรับตัวเลขสิบหลัก

โปรแกรมของฉันกำลังพยายามให้ผู้ใช้ป้อนข้อมูลในช่องข้อความ และหากผู้ใช้ป้อนข้อมูลเป็นตัวเลข 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>

person A B    schedule 08.06.2016    source แหล่งที่มา
comment
เปิดคอนโซลเบราว์เซอร์ของคุณ (โดยปกติคือ F12) - regex ของคุณไม่ถูกต้องและควรบันทึกข้อผิดพลาด (รายการแรกจากสองสามรายการ)   -  person James Thorpe    schedule 08.06.2016
comment
รหัสของคุณมีปัญหาหลายประการ ซึ่งปัญหาใดปัญหาหนึ่งอาจทำให้เกิดความล้มเหลวได้   -  person    schedule 08.06.2016


คำตอบ (2)


ไวยากรณ์ของ regex ของคุณไม่ถูกต้อง

ทำมัน

var tendigitnum = /^\d{10}$/; 

และใช้เป็น

tendigitnum.test("2342343434"); //outputs true

นอกจากนี้ ไม่มีวิธีการเช่น getElementByName คุณต้องใช้ getElementsByName และส่งกลับองค์ประกอบหลายรายการ ทำมัน

var input_num = document.getElementsByName("inputnumber")[0].value;
person gurvinder372    schedule 08.06.2016
comment
นอกจากนี้เมื่อฉันกดปุ่มตรวจสอบ ข้อมูลเข้าก็หายไปและไม่มีการแจ้งเตือนปรากฏขึ้น - person A B; 08.06.2016
comment
ใช่ ฉันมี และเมื่อฉันเปลี่ยนลำดับการแจ้งเตือน โปรแกรมจะทำงาน! - person A B; 08.06.2016

คุณต้องเปลี่ยน regex ให้เป็นค่าที่ถูกต้อง

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>

person Nina Scholz    schedule 08.06.2016