不是说不能写,而是说麻烦
<script>
function getReg(txtValue)
{
var reg = /^([2-4]\d|50|[2-4]\.\d+)$/g;
alert(reg.test(txtValue));
}
</script>
<input type="text" onblur="getReg(this.value)">
<script>
function getReg(txtValue)
{
var reg = /^([2-4]\d|50|[2-4]\.\d+)$/g;
alert(reg.test(txtValue));
}
</script>
<input type="text" onblur="getReg(this.value)">
function keydown(text){
var reg = / *[\[\(] *[\.\d]{1,} *, *[\.\d]{1,} *[\]\)] *$/g;
if(reg.test(text))alert("格式合要求:\n\n[或(,$2可以为)或], d1,d2可以是整数也可以是浮点数")
else alert("格式不合要求:\n\n[或(,$2可以为)或], d1,d2可以是整数也可以是浮点数")
}
</script>
<input type="text" value="[0,0]" title=回车测试 onkeypress="if(event.keyCode == 13)keydown(this.value)" >
合要求的:
[0,0]
[.,.]
[.0,.1]
[ 0000, 0.2 ]
不合的:[ 0 0 0,0]
var str = "[0.43,43]";function check(str)
{
var firstLetter = str.substr(0, 1);
var lastLetter = str.substr(str.length-1, 1);
var centerStr = str.substr(1, str.length-2); if(firstLetter=='[')
if(lastLetter!=']')
return false;
else if(firstLetter=='(')
if(lastLetter!=')')
return false; if(centerStr.match(/^(([1-9]\d*(\.\d+)?)|(0(\.\d+)?))\,(([1-9]\d*(\.\d+)?)|(0(\.\d+)?))$/)==null)
return false; return true;
}alert(check(str));//如果要使支持[0.3, 25]这种类型(中间加空格)的需要把正则表达式改为:
//^(([1-9]\d*(\.\d+)?)|(0(\.\d+)?))\, *(([1-9]\d*(\.\d+)?)|(0(\.\d+)?))$
</script>
/^\((([1-9]\d*)|0)(\.\d*[1-9])?,(([1-9]\d*)|0)(\.\d*[1-9])?\)$/ //(1,1)
先用这两个正则式判断出你的字符串是否符合标准,然后再做你的范围比较。