想学学正则表达式.并问一个问题. <script language="javascript">function check(sValue){ var re=/^\d+(.\d)?$/; return re.test(sValue);}</script> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sorry, should be<script language="javascript">function check(sValue){ var re=/^\d+(\.\d)?$/; return re.test(sValue);}</script> ?以前有这个问题的p=/^(\d)|(\d\.[0-9]{1})$/p.test(value) /^\d+(\.\d)?$/ ^匹配最前\d匹配所有数字+匹配前面的数一次或多交(\.\d)就是小数点和所有数字?前面的0次或一次$匹配最后解译完必 收工:) 无为兄,我想问2个问题;1. 加上^和$表示从头匹配到尾,是不是所有的类似的CHECK都要加上这个,什么时候需要加这标识?2. ()在这里面表示什么意思.什么时候需要加这标识,什么时候可以不用加? javascript也支持正则表达式?不知道功能是否强大 JAVASCIRPT当然支持了,我就是在JAVASCRIPT中使用的,它的功能是很强大,但会用的人不太多. /^\d+(\.\d)?$/==>匹配整个由几个数字组成的字符串(譬如,123131)或几个数字.单个数字组成的字符串(譬如,12.3)1. 如果你不匹配前(^)后($)的话,这正则表达式可以匹配子字符串,譬如"AA123BB"2. ()就是把\.与\d组合在一起,这样(\.\d)?表示要么是\.\d,要么是空javascript里有个内置对象叫RegExp, 参看:1. http://msdn.microsoft.com/library/en-us/script56/html/js56jsobjRegExp.asp?frame=true2. http://developer.netscape.com/docs/manuals/communicator/jsref/corea3.htm#1158210 建立JavaScript正则表达式库简化表单验证 本文介绍如何创建一个可用于任何Web页面的“正则表达式库”——通过将表单验证代码保存为一个独立的文件,我们可以避免为不同表单重写类似的验证代码,只需在HTML页面中包含这个库文件即可。 一、HTML元素属性与JavaScript对象属性 我们知道,HTML允许我们为元素指定自定义属性。如对于表单中的文本输入框元素,我们可以给它指定一个称为validator的属性: < form id="exampleForm" > < input type="text" name="input1" validator="whatsThisFor?" > ... < /form > 该属性将被浏览器的表现引擎忽略,即它对于页面的显示是没有任何影响的。不过,就像所有其它“正式的”属性一样,自定义属性对脚本语言也是可见的,即我们可以在JavaScript代码中引用它并分析它的值。当然,在IE4和N4中引用元素的方法是不同的。下面这个引用自定义属性的示例只能在IE4(及其更高版本)下工作,但其原理也适用于Netscape浏览器: if(document.all.exampleForm.input1.validator=="whatsThisFor") alert("Hello !"); else ... 如果属性没有定义,则试图引用它时将返回空值,在if语句的表达式里它被视为false: if(!document.all.exampleForm.input1.validator) alert("No validator!"); 下面我们来看看如何在表单验证中应用这种自定义属性。 二、正则表达式与模式匹配 许多表单验证任务包含了模式匹配操作。例如我们要验证这样一个图书编号值的合法性:它或者为5个数字字符,或为10个字符——5个数字,一个连字号,再加上4个数字。虽然这些验证任务也可以用一个专用的函数来完成,但用下面这个正则表达式模式与用户输入值比较更为简便: /d{5}(-d{4})?/ 如果你以前从来没有用过正则表达式,可以将它理解为一种指定字符模式的语言,其主要操作就是匹配。大多数字符只同它们自己匹配,如正则表达式/abc/只匹配字符串“abc”;但也提供了引用某一组字符(如全部数字)以及指定匹配字符个数的方法。在上例中:d{5}匹配的是任意5个数字,-d{4}匹配的是一个连字号加4个数字,?说明模式中的最后一个元素是可选的,可包含也可不包含。 三、正则表达式库及其应用 所谓的正则表达式库就是包含验证常用表单元素的正则表达式的脚本文件,如: var PatternsDict = new Object(); // 匹配图书编号 PatternsDict.bookPat = /^d{5}(-d{4})?$/; // 匹配12:34以及75:83 PatternsDict.timePat = /^d{2}:d{2}$/; // 匹配5:04 或12:34,但不匹配75:83 PatternsDict.timePat2=/^([1-9]|1[0-2]):[0-5]d$/; 文件中还要包含下面这个提供验证功能的函数: function validateForm(theForm){// 若验证通过则返回true var elArr = theForm.elements; // 将表单中的所有元素放入数组 for(var i = 0; i < elArr.length; i++) with(elArr[i]){ // 对于表单中的每一个元素... var v = elArr[i].validator; // 获取其validator属性 if(!v) continue; // 如果该属性不存在,忽略当前元素 var thePat = PatternsDict[v]; // 选择验证用的正则表达式 var gotIt = thePat.exec(value); // 用正则表达式验证elArr[i]的值 if(!gotIt){ alert(name + ": 输入值与正则表达式不匹配(" + v + " —— " + value + ")"); return false;} } return true; } validateForm函数检查每一个表单元素的validator属性,若该属性不存在,脚本忽略此元素并返回循环的开头。否则,从PatternDict中获得当前元素的匹配模式。每一个正则表达式都有对应的RegExp对象,RegExp对象的exec()方法在参数与它所关联的正则表达式不匹配时返回null——此时脚本显示警告对话框。在实际应用场合,为提高效率可以在执行验证之前将这些正则表达式编译。某些输入域可能需要除了简单匹配之外更为复杂的验证。因此,除了模式库之外,还可以为常用的验证任务建立一个函数库。 设上述验证模式文件为valPatterns.js,将它包含到所有必需用它来验证输入的页面中,然后为每个输入框指定合适的validator属性即可。下面是应用上述valPatterns.js的一个完整示例: < HTML >< HEAD > < TITLE > formVal.HTM < /TITLE > < SCRIPT src=" ValPatterns.js" > < /SCRIPT > < SCRIPT > function showForm(theForm){ alert("表单:" + theForm.id + "已经提交"); } < /SCRIPT >< /HEAD > < BODY >< P >用正则表达式库验证表单示例.< /P > < FORM id = theForm onSubmit = "return validateForm(theForm)" Action = "javascript:showForm(theForm)" > 图书编号: < INPUT TYPE=TEXT name=book value="12345-6789" validator=bookPat >< BR > 时 间 值: < INPUT TYPE=TEXT name=time value="12:45" validator=timePat2 > < BR > 单击按钮提交表单: < INPUT TYPE = SUBMIT > < /FORM > < /BODY >< /HTML > JqueryEasyUI combotree不显示 网页阻塞式模式对话框实现! js的innerHTML在IE7下有问题 JS DOM制作页面 有个问题 js正则验证表单只能输入数字时问题 ──────── expression 问题, 请高手解决 ───────── 关于Frame的总题,请高手指点,高分重谢!!!!!! 如何获得一个表格的集合????????//在线等哦~~~~~~~~~~ 如何用javascript代码,改windows2000的默认主页 诚征javascript高手合作 如何控制文本框的显示与隐藏?
function check(sValue)
{
var re=/^\d+(\.\d)?$/;
return re.test(sValue);
}
</script>
p=/^(\d)|(\d\.[0-9]{1})$/
p.test(value)
^匹配最前
\d匹配所有数字
+匹配前面的数一次或多交
(\.\d)就是小数点和所有数字
?前面的0次或一次
$匹配最后解译完必 收工:)
1. 加上^和$表示从头匹配到尾,是不是所有的类似的CHECK都要加上这个,什么时候需要加这标识?
2. ()在这里面表示什么意思.什么时候需要加这标识,什么时候可以不用加?
不知道功能是否强大
==>匹配整个由
几个数字组成的字符串(譬如,123131)
或
几个数字.单个数字组成的字符串(譬如,12.3)1. 如果你不匹配前(^)后($)的话,这正则表达式可以匹配子字符串,譬如"AA123BB"
2. ()就是把\.与\d组合在一起,这样(\.\d)?表示要么是\.\d,要么是空javascript里有个内置对象叫RegExp, 参看:
1. http://msdn.microsoft.com/library/en-us/script56/html/js56jsobjRegExp.asp?frame=true2. http://developer.netscape.com/docs/manuals/communicator/jsref/corea3.htm#1158210