1 判断数字
判断是否为数字: var re = /^[0-9]+.?[0-9]*$/;
判断正整数:var re = /^[1-9]+[0-9]*]*$/;
上例子一个
function checkData(obj,message) {
//判断输入正整数
var re = /^[1-9]+[0-9]*]*$/;
if (!re.test(obj.value)) {
alert(message);
obj.value='';
return false;
}
return true;
}
2 大学老师给的个判断数字的
有关捕获性分组和非捕获性分组
1、分组就是将若干单位(可以是字符,正则表达式等等)组织在一起,成为一个独立的单元,该单位可以跟独立的字符一样,受量词的控制,分组使用()表示
2、分组分为捕获性分组和非捕获性分组,简单的说捕获性分组就是捕获分组所匹配的内容暂且存储在某个地方,以便下次使用,捕获性分组以(...)表示,有些地方将取得捕获性分组所匹配结果的过程称之为"反向引用",非捕获性分组不捕获分组所匹配的内容,当然也就得不到匹配的结果,非捕获性分组以(?:...)表示,在一些只需要分组匹配但是并不需要得到各个分组匹配的结果时,使用非捕获性分组可以提高匹配速度。
3、在JavaScript和Java中,捕获性分组所匹配的内容都是以$1,$2,$3...的格式保存的!
例子捕获性分组:
window.onload = function(){
var now = "25";
/(?:\d\d)/.test(now);
alert(RegExp.$1); //输出为空 非捕获性分组
var now2 = "25";
/(\d\d)/.test(now2);
alert(RegExp.$1);//输出25 捕获性分组
}
window.onload = function(){
var now = "25/10/2009";
/(\d\d)\/(\d\d)\/(\d\d\d\d)/.test(now);
alert(RegExp.$1); //25
alert(RegExp.$2); //10
alert(RegExp.$3); //2009
}
例子非捕获性分组
window.onload = function(){
var now = "25/10/2009";
/(?:\d\d)\/(\d\d)\/(\d\d\d\d)/.test(now);
alert(RegExp.$1); // 此处输出为空
alert(RegExp.$2); //10
alert(RegExp.$3); //2009
}
http://ycyk168.iteye.com/blog/514573<script language="JavaScript">
<!--
/*正则表达式 非捕获性分组
如果要创建一个非捕获性分组,只要在左括号的后面加上一个问号和一个紧跟的冒号:
*/
var sToMatch = "#123456789";
var reNumbers = /#(?:\d+)/;
reNumbers.test(sToMatch);
alert(RegExp.$1);
/*
这个例子的最后一行代码输出一个空字符串,因为该组是非捕获性的,
*/
<script language="javascript" type="text/jscript" >
function IsNumber(txt)
{
//var r = /^([1-9]\d*[\.]?\d{1,2}|[0][\.]\d{1,2})$/;
//var r = /^\d*[\.]?\d{1,2}$/;
//var r = /^[1-9]\d*[\.]?\d{1,2}$/;
var r = /^([1-9](?:\d*|\d*[\.]\d{1,2})|[0][\.]\d{1,2})$/;
if(!r.test(txt.value))
{
alert("请输入数值!");
txt.value="";
txt.focus();
}
}
function JudgeAndComp(preTxt,txt,valueTxt)
{
if(preTxt.value != "")
IsNumber(preTxt);
if(txt.value !="")
IsNumber(txt);
if(preTxt.value!="" && txt.value!="")
valueTxt.value=((preTxt.value-txt.value)/txt.value*100).toFixed(2);
else
{
if(preTxt.value =="" || txt.value =="")
valueTxt.value= "";
}
}
</script>