我用我最后的100分求一个验证文本框的javascript正则表达式!
我现在想让一个文本框中只能输入小数,整数和分数,例如:可是输入1,2.0,0.5,1/3
等,其它的非数字不能输入,其中/和.这两个符号不能出现在输入内容的开头和末尾,这个该怎么写啊??我用完我最后的100分啊?
------解决方案-------------------- <script>
function test(){
var str=document.form1.text1.value;
var re=/^((\d+(.\d+)?)|(\d+\/[1-9]\d*))$/g;
return alert(re.test(str))
}
</script>
<form name= "form1 ">
<input type=text name= "text1 " >
<input type= "button " onclick= "return test() ">
</form>
------解决方案--------------------function test(v){
var reg = /^\d+(?:\.\d+)?(?:\/\d+)?$/;
if(!reg.test(v))
alert( 'err ');
}
<input type= "Text " onblur= 'test(this.value) ' />
------解决方案--------------------(\-|((\+)?))([\d]+)((\.([\d]+))?)|([1-9](\d)*/[1-9](\d)*)
------解决方案--------------------//arr = input.value.split( ", "); 然后遍历数组arr 判断一下 isNaN(eval(arr[i]))
<input type= "Text " onblur= 'test(this.value) '>
function test(value)
{
var arr = value.split( ", ");
for(var i=0;i <arr.length;i++)
if(isNaN(eval(arr[i])))
return false;
return true;
}
------解决方案--------------------小改了下jinjuduo(与人玫瑰,手有余香)的,其实他的只是漏掉一个转义符
<script>
function test(){
var str=document.form1.text1.value;
var re=/^((\d+(\.\d+)?)|(\d+\/[1-9]\d*))$/g;
return alert(re.test(str))
}
</script>
<form name= "form1 ">
<input type=text name= "text1 " >
<input type= "button " onclick= "return test() ">
</form>
------解决方案--------------------function cc(a){
alert(/^((\d+)|(\d+\.\d+)|([1-9]\d*\/\d+))$/.test(a))
}
cc( "0 ")
cc( "123 ")
cc( "0.5 ")
cc( "1/3 ")
cc( "0 ")
cc( "12.9 ")
cc( "0.5555 ")
cc( "1/334 ")
cc( "1231/334 ")
分数考虑了分子不为0,小数这样的没考虑02.3
------解决方案--------------------晕,分数应该是分母不为0,知识都忘光了
------解决方案--------------------new RegExp( '^\d*[\.\/]?\d*$ ', ' ').test( '11\.3 ')
单纯的表达式字符串就是:^\d*[\.\/]?\d*$
刚测试了一下,应该是这样的,好用的。我这里有一个简单的测试正则的网页,lz有兴趣可以跟我联系
------解决方案--------------------http://regxplib.com/