日期:2014-05-18  浏览次数:20774 次

求一正则。。
ZXX-XX-XXXXWWW

XX部分为数字   WWW部分可有可无,是中文也可能是字母但是一定不是数字

Z12-12-1234小张

------解决方案--------------------
Z\d{2}-\d{2}-d{2}[a-zA-Z]*?

或者

Z\d{2}-\d{2}-d{2}
------解决方案--------------------
前面XX数字位数是否固定,用在哪里,验证控件还是程序里,什么目的,匹配还是提取


Z\d+-\d+-\d+\D+
------解决方案--------------------
后面可有可无,应该这样

Z\d+-\d+-\d+(?:\D+)?

数字位数固定,这样

Z\d{2}-\d{2}-\d{4}(?:\D+)?

如果是用在验证控件里或是在程序里验证规则

^Z\d{2}-\d{2}-\d{4}(?:\D+)?$


------解决方案--------------------
估计是这样
@ "^Z\d{2}-\d{2}-\d{4}\D*$ "
------解决方案--------------------
try

<form name=loginform>
<input type= "text " name= "E " size= "20 " onMouseOut= "check() ">
</form>
<script language=JavaScript>
function check(str)
{
var reg = /^Z\d{2}-\d{2}-\d{4}\D*$/;
if(!reg.test(str))
{
alert( "不合法! ");
}
}
check(document.loginform.E.value)
</script>


后面写的延续了最开始的思路了,应该是按伴水这种写法好一些
------解决方案--------------------
或者按你原来的写法,在 </script> 前面加一行
check();
你只定义了函数,并没有调用,所以不会弹出警告
------解决方案--------------------
javascript中是“/”不是“ "”,vbscript才是“ "”
啥也不说了,看效果吧

<form name=loginform>
<input type= "text " name= "E " size= "20 " onMouseOut= "check() ">
</form>
<script language=JavaScript>
function check()
{
var resss = new RegExp(/^Z\d{2}-\d{2}-\d{4}\D*$/);
if(!resss.test(document.loginform.E.value))
{
alert(document.loginform.E.value);
}
}
</script>
------解决方案--------------------
哦,没注意到前面的,用下面的试试,我这里测试通过

<form name=loginform>
<input type= "text " name= "E " size= "20 " onMouseOut= "check() ">
</form>
<script language=JavaScript>
function check()
{
var reg = /^Z\d{2}-\d{2}-\d{4}\D*$/;
if(!reg.test(document.loginform.E.value))
{
alert( "不合法! ");
}
}
check()
</script>


另外我觉得把onMouseOut= "check() "换成onBlur= "check() "会好些,onMouseOut验证有些不人性化