JS 正则表达式判断 字符 数字 日期 等等

[b]1 判断数字[/b]
判断是否为数字: 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
}

[url]http://ycyk168.iteye.com/blog/514573[/url]<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值