Ekspresi reguler untuk sepuluh digit angka

Program saya di sini mencoba memasukkan pengguna ke dalam bidang teks, dan jika masukan pengguna adalah angka 10 digit (angka dengan 0 di awal atau jumlah semacam itu) ketika mereka menekan tombol centang, mereka akan menerima peringatan mengatakan nomor mereka, atau mereka akan menerima peringatan yang memberitahu mereka untuk memasukkan nomor yang tepat.

Namun, setiap kali saya menekan tombolnya, tidak ada perubahan. Saya yakin ada masalah di dalam ekspresi reguler dan fungsinya, tetapi saya tidak yakin bagaimana cara menulis ekspresi reguler yang mencari pola tertentu yang memiliki 10 digit hasil formulir.

Berikut adalah bagian yang relevan dari kode saya.

<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 sumber
comment
Buka konsol browser Anda (biasanya F12) - regex Anda tidak valid dan seharusnya mencatat kesalahan (yang pertama dari beberapa kesalahan).   -  person James Thorpe    schedule 08.06.2016
comment
Ada beberapa masalah dalam kode Anda, salah satunya akan menyebabkan kegagalan.   -  person    schedule 08.06.2016


Jawaban (2)


Sintaks regex Anda salah.

Buatlah

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

dan menggunakannya sebagai

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

Selain itu, tidak ada metode seperti getElementByName, Anda perlu menggunakan getElementsByName dan mengembalikan banyak elemen. Buatlah

var input_num = document.getElementsByName("inputnumber")[0].value;
person gurvinder372    schedule 08.06.2016
comment
juga, ketika saya menekan tombol centang, inputnya hilang begitu saja dan tidak ada peringatan yang ditampilkan. - person A B; 08.06.2016
comment
Ya, sudah, dan ketika saya mengganti urutan peringatan, programnya berfungsi! - person A B; 08.06.2016

Anda perlu mengubah regex menjadi yang valid

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

dan akses yang tepat ke nilai elemen dengan

document.getElementsByName("inputnumber")[0].value

dan Anda perlu melakukan pertandingan dengan

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