Merhaba arkadaşlar,
Bu yazımda telefon numarası formatı nasıl kontrol edilir bundan bahsedeceğim. Bu işlemi javascript ile yapacağım. Kullanıcı textbox a sayıları girerken textbox içerisinde bulunan sayılar telefon numarası formatında yazılacak ve karakter sınırına ulaşıldıktan sonra textbox a sayı girilemeyecek. Bununla beraber telefon numarası alanına yalnızca sayı girişi yapılabilecek ve bunun dışında hiçbir karaktere izin verilmeyecek.
Öncelikle telefon numarasını alacağımız textbox ı oluşturup onkeydown ve onkeyup eventlerini aşağıdaki gibi oluşturuyoruz.
1 2 3 |
<asp:TextBox ID="txtphone" runat="server" placeholder="Phone" onkeydown="javascript:backspacerDOWN(this,event);" onkeyup="javascript:backspacerUP(this,event);"></asp:TextBox> |
Şimdi diğer javascript kodlarımızı yazacağız. Aynı sayfada iyi durmayacağı için bir .js dosyası oluşturuyorum ve içine javascript kodlarımı yazıyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
//phone.js var zChar = new Array(' ', '(', ')', '-', '.'); var maxphonelength = 14; var phonevalue1; var phonevalue2; var cursorposition; function ParseForNumber1(object) { phonevalue1 = ParseChar(object.value, zChar); } function ParseForNumber2(object) { phonevalue2 = ParseChar(object.value, zChar); } function backspacerUP(object, e) { if (e) { e = e } else { e = window.event } if (e.which) { var keycode = e.which } else { var keycode = e.keyCode } ParseForNumber1(object) if (keycode >= 48) { ValidatePhone(object) } } function backspacerDOWN(object, e) { if (e) { e = e } else { e = window.event } if (e.which) { var keycode = e.which } else { var keycode = e.keyCode } ParseForNumber2(object) } function GetCursorPosition() { var t1 = phonevalue1; var t2 = phonevalue2; var bool = false for (i = 0; i < t1.length; i++) { if (t1.substring(i, 1) != t2.substring(i, 1)) { if (!bool) { cursorposition = i bool = true } } } } function ValidatePhone(object) { var p = phonevalue1 p = p.replace(/[^\d]*/gi, "") if (p.length < 3) { object.value = p } else if (p.length == 4) { pp = p; d4 = p.indexOf('(') d5 = p.indexOf(')') if (d4 == -1) { pp = "(" + pp; } if (d5 == -1) { pp = pp + ")"; } object.value = pp; } else if (p.length >4 && p.length < 8) { p = "(" + p; l30 = p.length; p30 = p.substring(0, 5); p30 = p30 + ")" p31 = p.substring(5, l30); pp = p30 + p31; object.value = pp; } else if (p.length >= 8) { p = "(" + p; l30 = p.length; p30 = p.substring(0, 5); p30 = p30 + ")" p31 = p.substring(5, l30); pp = p30 + p31; l40 = pp.length; p40 = pp.substring(0, 9); p40 = p40 + "-" p41 = pp.substring(9, l40); ppp = p40 + p41; object.value = ppp.substring(0, maxphonelength); } GetCursorPosition() if (cursorposition >= 0) { if (cursorposition == 0) { cursorposition = 2 } else if (cursorposition <= 2) { cursorposition = cursorposition + 1 } else if (cursorposition <= 5) { cursorposition = cursorposition + 2 } else if (cursorposition == 6) { cursorposition = cursorposition + 2 } else if (cursorposition == 7) { cursorposition = cursorposition + 4 e1 = object.value.indexOf(')') e2 = object.value.indexOf('-') if (e1 > -1 && e2 > -1) { if (e2 - e1 == 4) { cursorposition = cursorposition - 1 } } } else if (cursorposition < 11) { cursorposition = cursorposition + 3 } else if (cursorposition == 11) { cursorposition = cursorposition + 1 } else if (cursorposition >= 12) { cursorposition = cursorposition } var txtRange = object.createTextRange(); txtRange.moveStart("character", cursorposition); txtRange.moveEnd("character", cursorposition - object.value.length); txtRange.select(); } } function ParseChar(sStr, sChar) { if (sChar.length == null) { zChar = new Array(sChar); } else zChar = sChar; for (i = 0; i < zChar.length; i++) { sNewStr = ""; var iStart = 0; var iEnd = sStr.indexOf(sChar[i]); while (iEnd != -1) { sNewStr += sStr.substring(iStart, iEnd); iStart = iEnd + 1; iEnd = sStr.indexOf(sChar[i], iStart); } sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length); sStr = sNewStr; } return sNewStr; } |
Ardından sayfaya aşağıdaki java script kodlarını ekliyoruz ve yukarıda oluşturmuş olduğumuz .js dosyasını çağırıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<script type="text/javascript"> $(function () { $('#txtphone').keydown(function (e) { if (e.shiftKey || e.ctrlKey || e.altKey) { e.preventDefault(); } else { var key = e.keyCode; if (!((key == 8) || (key == 46) || (key >= 35 && key <= 40) || (key >= 48 && key <= 57) || (key >= 96 && key <= 105))) { e.preventDefault(); } } }); }); </script> <script src="/phone.js"></script> |
Girilen telefon numarasını formatlama işlemini tamamlamış olduk.
Kolay gelsin iyi çalışmalar.
Güzel bir çalışma olmuş. Teşekkürler.