try:
<head>
<style>
input{text-transform:uppercase}
</style>
</head>
<body>
<script>
function a(t){
t.value=t.value.toUpperCase()
if(!/^[A-Z]{4}\d{6}$/.test(t.value)){alert('error');t.focus()}
return false
}
</script>
<form name=frm>
<input onblur="a(this)">
<input onblur="a(this)">
<input onblur="a(this)">
</form>
<head>
<style>
input{text-transform:uppercase}
</style>
</head>
<body>
<script>
function a(t){
t.value=t.value.toUpperCase()
if(!/^[A-Z]{4}\d{6}$/.test(t.value)){alert('error');t.focus()}
return false
}
</script>
<form name=frm>
<input onblur="a(this)">
<input onblur="a(this)">
<input onblur="a(this)">
</form>
function ss(obj){
xx=/\[A-Z]{4}[0-9]{7}/
if(!obj.value.xx.test()){
alert("错误")
}
}
javaoldmouse (凤凰涅盘)加点分吧,不加分,对的起我;但对不起我的眼睛,两只眼睛平白无辜跟我受累!!!哈哈盯了半天,小心翼翼输入搞了有史以来最长的正则表达式:<html>
<head>
<script language="JavaScript" type="text/JavaScript">
function Check ( Field ) { oPattern = /^([A-Z])(?=[A-Z])(?!\1)([A-Z])(?=[A-Z])(?!\1|\2)([A-Z])(?=[A-Z])(?!\1|\2|\3)([A-Z])(?=\d)(\d)(?=\d)(?!\5)(\d)(?=\d)(?!\5|\6)(\d)(?=\d)(?!\5|\6|\7)(\d)(?=\d)(?!\5|\6|\7|\8)(\d)(?=\d)(?!\5|\6|\7|\8|\9)(\d)(?=\d)(?!\5|\6|\7|\8|\9|\10)\d$/; oPattern.test ( Field.value ) || alert ( "Error" );}
</script></head>
<body>
<input type="text" name="T1" size="20" value="ABCD1234567" onblur="Check(this)"><p>
<input type="text" name="T2" size="20" value="QWER1234567" onblur="Check(this)">
</form>
</body>
</html>
我又看了你的问题,可能是我理解错了,我写的哪个巨难的正则表达式是检查11位字符,要求头4位是字母,后7位是数字,且11位字符要求两两不相同,即:不允许一个字符出现两次。
你再把你的要求,说明白些。是检查多个text框,要求text框里的内容不允许相同吗?
<form name="form1">
<input name=ab>
<input name=ab>
<input name=ab>
<input type=button onclick="chk()" value="check">
</form>
<script>
function chk(){
var t=document.form1.ab,str=""
for (var i=0;i<t.length;i++){str+=t[i].value+",";}
for (var i=0;i<t.length;i++){
if((str.length - str.replace(eval("/"+t[i].value+",/g"),"").length) != (t[i].value.length + 1)){
alert('有重復')
return false
}
}
alert("OK")
return true
}
</script>