javascript中控制表單裏面只可以輸入的字符,如數字,字母

//頁面中控制用戶在輸入框中只能輸入數字
//只能輸入正整數
onlyIntegerKeyUp = function (e) {
var e = event || window.event;
var obj = e.srcElement ? e.srcElement : e.target;
var pattern = /[^\d-]/ig;*//這裏可以寫正則表達式,來匹配要輸入的字符的校驗
var val = obj.value;
if (pattern.test(val)) {
var i = getCursortPosition(e);
console.log(i)
obj.value = val.replace(pattern, ‘’);
setCaretPosition(e, i);
}
};
//獲取光標位置
getCursortPosition = function (event) {// 獲取光標位置函數
if (event === undefined || event === null) {
event = arguments.callee.caller.arguments[0] || window.event;
}
var obj = event.srcElement ? event.srcElement : event.target;
var CaretPos = 0; // IE Support
if (document.selection) {
obj.focus();
var Sel = document.selection.createRange();
Sel.moveStart(‘character’, -obj.value.length);
CaretPos = Sel.text.length;
} else if (obj.selectionStart || obj.selectionStart == ‘0’) {
// Firefox support
CaretPos = obj.selectionStart;
}

return (CaretPos);

};
//設置光標位置
setCaretPosition = function (event, pos) {// 設置光標位置函數
if (event === undefined || event === null) {
event = arguments.callee.caller.arguments[0] || window.event;
}
var obj = event.srcElement ? event.srcElement : event.target;
if (pos > 0) {
pos = pos - 1;//因爲把不匹配的字符刪除之後,光標會往後移動一個位置
}
if (obj.setSelectionRange) {
obj.focus();
obj.setSelectionRange(pos, pos);
} else if (obj.createTextRange) {
var range = obj.createTextRange();
range.collapse(true);
range.moveEnd(‘character’, pos);
range.moveStart(‘character’, pos);
range.select();
}
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章