我有一个可以输入整数或者具有一位小数的输入框,设置onkeyup="value=value.replace(/[^\d\.]/g,'')"
但是这只能保证他可以输入数字和“.”,并不能限制输入“.”的个数,比如输入“2.2.2.2.2”也能通过。我想请教下怎么设置能够只输入合法的数字(整数或者小数点后只有一位的小数),最好是输入不合法的时候在页面上能够直接给出提示
但是这只能保证他可以输入数字和“.”,并不能限制输入“.”的个数,比如输入“2.2.2.2.2”也能通过。我想请教下怎么设置能够只输入合法的数字(整数或者小数点后只有一位的小数),最好是输入不合法的时候在页面上能够直接给出提示
pattern.test("2.2.2.2.2");用这样的正则表达式判断。
onkeyup="value=value.replace(/[^\d\.]/g,'')"
对于正则表达式我没有学过,所以……
两边的/你别管,固定写法,不是用""的,就是用/中间夹正则表达式,
^为正则的开始,$为正则的结束
\d是数字,+是出现的次数为1次或多次
()你就当成()内是一个整体,
\.是转义,因为.有另外的含义,如果想直接用.这个字符串去匹配,要转义,
?是出现0次或1次
这样这个正则的意思就是,要么就是 123312这样的整数,次数不限,至少一次,如果出现了. 则后面必须出现一个数字 这样 123123.1 也是符合要求的,因为 .与\d被()括起来了,要么一起出现,要么都不能出现,
而?问号限制了出现的次数,要么0次,要么1次,不能出现2次或2次以上,这样1232.2.2.2.2.2就是不符合的,然后你就用pattern.test(变量)来判断,这个式子是有返回值的,符合规则为true,不符合为false,中间的变量你可以在调用处传进来。这样解释还行?
key pressed 事件判断是否是合法字符,不是就出提示,
个人认为 不出提示直接删掉