还记得上次,你给我提交的正则表达式1-9不重复的3个数的验证, 代码java验证一点问题也没有,但放在javascript上,就出现问题了,结果出现意料之外的答案<br/><script language="JavaScript" type="text/JavaScript"><br/> <!--<br/>function checkForm()<br/> {<br/> var pattern = /([1-9])(?!\\1)([1-9])(?!\\1|\\2)([1-9])/;<br/> var textValue = Form01.text1.value; <br/> if(!pattern.test(textValue))<br/> {<br/> alert("必须是3位不重复1-9的数字,请重新输入!");<br/> Form01.text1.focus();<br/> return false;<br/> }else .......<br/>难道在js里面不是这样写吗?<br/>真不知道怎么修改了! 指点下我! 谢谢!
-
吴方东
回复于
2008-06-23
-
因为Java里正则是写在字符串里的,所有全部都用了两个 \ 进行转义,<br />而js里的正则有两种写法,一就是用//包起来,二就是new RegExp("xxx") 这种形式的,<br />如果是第一种形式,那只用一个\就可以表示元字符了,所以,改成下面这样:<br /><br /> var reg = /([1-9])(?!\1)([1-9])(?!\1|\2)([1-9])/;<br /><br /> alert(reg.test("123"));<br /> alert(reg.test("223"));<br /> alert(reg.test("323"));<br /> alert(reg.test("122"));<br /> alert(reg.test("121"));<br /> alert(reg.test("483"));