Javascript 将文本字段限制为正数和负数

标签 javascript regex

javascript 中有一种方法允许用户在文本字段(input type="text")中仅输入数字,但可以选择在它们前面加上减号? (即只有负数和正数)

最佳答案

<input type='text' onkeypress='return numbersOnly(this,event,false,true);'>

function numbersOnly(Sender,evt,isFloat,isNegative) {
            if(Sender.readOnly) return false;       

            var key   = evt.which || !window.event ? evt.which : event.keyCode;
            var value = Sender.value;

            if((key == 46 || key == 44) && isFloat){                
                var selected = document.selection ? document.selection.createRange().text : "";
                if(selected.length == 0 && value.indexOf(".") == -1 && value.length > 0) Sender.value += ".";
                return false;
            }
            if(key == 45) { // minus sign '-'
                if(!isNegative) return false;
                if(value.indexOf('-')== -1) Sender.value = '-'+value; else Sender.value = value.substring(1);
                if(Sender.onchange != null) {
                    if(Sender.fireEvent){
                        Sender.fireEvent('onchange');
                    } else {
                        var e = document.createEvent('HTMLEvents');
                            e.initEvent('change', false, false);
                        Sender.dispatchEvent(e);
                    }
                }

                var begin = Sender.value.indexOf('-') > -1 ? 1 : 0;
                if(Sender.setSelectionRange){
                    Sender.setSelectionRange(begin,Sender.value.length);
                } else {
                    var range = Sender.createTextRange();
                    range.moveStart('character',begin);
                    range.select();                 
                }

                return false;
            }
            if(key > 31 && (key < 48 || key > 57)) return false;
        }

相关问题:HTML Text Input allow only Numeric input

关于Javascript 将文本字段限制为正数和负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289810/

相关文章:

javascript - 使用 Jquery 的图表

c - 如何使用 mpc 解析器定义标准数学符号

javascript - 在循环中创建多个具有不同 id 的文本区域

javascript - 正则表达式匹配上的Nodejs Socket io

ruby - 如何根据编码字符串 Ruby 返回解码后的字符串

c++ - boost 正则表达式错误:未初始化的 boost::match_results

regex - 仅当表达式的其余部分匹配时,如何接受字符 "' "?

javascript - 无法获取属性值 'offsetWidth' : object is null or undefined error

javascript - 当可能必须删除模块以节省内存时是否可以使用 requirejs

javascript - Jquery - 添加面板的按钮/删除面板的按钮