function checkPassword()
{
var form = document.fm_setpassword;
var pwd1 = form.fm_strNewPassword
var pwd2 = form.fm_strAgnPassword;
var old = form.fm_strOldPassword; if (old.value.length==0)
{
alert("请输入您当前的密码!");
old.focus();
return;
}
if (pwd1.value.length==0)
{
alert("请输入您的新密码!");
pwd1.focus();
return;
}
if (pwd1.value!=pwd2.value)
{
alert("两次输入的新密码不一致!");
pwd1.value="";
pwd2.value="";
pwd1.focus();
return;
}
if (old.value==pwd2.value)
{
alert("新密码不能和现有密码相同!");
pwd1.value="";
pwd2.value="";
pwd1.focus();
return;
}
if(!isHasDightLetter(pwd1.value))
{
alert("新密码必须包含字母和数字,并且最少为8位。");
pwd1.value="";
pwd2.value="";
pwd1.focus();
return;
}
var nResult = confirm("您确定要修改您的密码吗?")
if (!nResult) return; var strURL = "setpassword.asp";
strURL = strURL + "?mod=0";
form.action = strURL;
form.submit();
}function isHasDigit(str)
{
for(i=0;i<str.length;i++)
if((str.charAt(i))>'0' && (str.charAt(i)<'9'))
return true;
return false;
}
function isHasLetter(str)
{
for(i=0;i<str.length;i++)
if(((str.charAt(i))>'a' && (str.charAt(i)<'z')) || ((str.charAt(i))>'A' && (str.charAt(i)<'Z')))
return true;
return false;
}
function isHasDightLetter(str)
{
if(isHasDigit(str) && isHasLetter(str) && str.length>7)
return true;
return false;
}
</script>
现在检测数字和字母这一块 就是 isHasDightLetter 这里,当输入特殊字符的时候也不通过,好比输入 hb&^^!ashduhu1 这样的密码,也是不会通过的,请高手帮忙改下,只要有字母有数字有8位即可通过。
解决方案 »
- 正则表达式,去掉所有符号。
- 有关switch的问题
- onclick设置内容之后,为何typeof(onclick)的值从object变为function?试验代码见正文
- [倒计时制作]如何让倒计时更加精准
- 左右两个框架,右边是到别人的页面的,,我不能控制,如何实现自动刷新右边的,而左边不刷新呢??
- ajax问题,如果服务器在n秒内没有相应,则终止当前请求,如何实现?
- 红色字体jquery
- A,B两个已经打开的页面,A页面怎么样得到B页面的句柄?
- 关于用showModalDialog()方法创建的模态对话框的隐藏或移出页面的问题!!急!急!!急!!!
- extjs中TabPanel 中的items里面可以包含什么
- 一个对象方法可以定义多次吗?
- 如何设置默认按钮,相应回车事件?
function isHasLetter(str)
{
var re = /^[a-zA-Z]+$/ ;
return re.test(str);
}
{
var re = /^[\w]{8,}$/ ;
return re.test(str);
}
function isHasDightLetter
{
re = /^[^\s]{8,20}$/
if(!re.test(f.password.value)){
alert("密码必须在8位到20位之间");
f.password.focus();
return false;
}}密码最少量和最大量都要限制的。不然你的表真的能接受么?
function isHasDightLetter(str)
{
re = /^[^\s]{8,20}$/
if(!re.test(str)){
alert("密码必须在8位到20位之间");
f.password.focus();
return false;
}}上面的那个有点问题,这个使用了参数传递
function isHasDightLetter(str)
{
re = /^[a-zA-z0-9]{8,20}$/
if(!re.test(str)){
alert("密码必须在8位到20位之间");
f.password.focus();
return false;
}}function isHasDightLetter(str)
{
re = /^[\w]{8,20}$/
if(!re.test(str)){
alert("密码必须在8位到20位之间");
f.password.focus();
return false;
}}这两个都可以
<!--
function isHasDigit(str)
{
var result = /^(?!\d+$)(?!\D+$)[a-zA-Z\d]{8}$/.test(str)
return result
} alert(isHasDigit("1222222"));
alert(isHasDigit("aaaaaaa"));
alert(isHasDigit("#$#$#qqq"));
alert(isHasDigit("122aa222"));
//-->
</script>
<script type="text/javascript">
<!--
function isHasDigit(str)
{
var result = /^(?!\d+$)(?!\D+$)[a-zA-Z\d]{8,}$/.test(str)
return result
} alert(isHasDigit("122222222"));
alert(isHasDigit("aaaaaaaaa"));
alert(isHasDigit("#$#$#qqq"));
alert(isHasDigit("122aa222222"));
//-->
</script>
function isHasDightLetter(str)
{
if(isHasDigit(str) && isHasLetter(str) && str.length>7)
return true;
return false;
}
============= 把上面这段代码直接换成下面这个就可以了=================== function isHasDightLetter(str)
{
var result = /^(?!\d+$)(?!\D+$)[a-zA-Z\d]{8,}$/.test(str);
return result;
}
function checkPassword()
{
var form = document.fm_setpassword;
var pwd1 = form.fm_strNewPassword
var pwd2 = form.fm_strAgnPassword;
var old = form.fm_strOldPassword; if (old.value.length==0)
{
alert("请输入您当前的密码!");
old.focus();
return;
}
if (pwd1.value.length==0)
{
alert("请输入您的新密码!");
pwd1.focus();
return;
}
if (pwd1.value!=pwd2.value)
{
alert("两次输入的新密码不一致!");
pwd1.value="";
pwd2.value="";
pwd1.focus();
return;
}
if (old.value==pwd2.value)
{
alert("新密码不能和现有密码相同!");
pwd1.value="";
pwd2.value="";
pwd1.focus();
return;
}
if(!isHasDightLetter(pwd1.value))
{
alert("新密码必须包含字母和数字,并且最少为8位。");
pwd1.value="";
pwd2.value="";
pwd1.focus();
return;
}
var nResult = confirm("您确定要修改您的密码吗?")
if (!nResult) return; var strURL = "setpassword.asp";
strURL = strURL + "?mod=0";
form.action = strURL;
form.submit();
}
function isHasDigit(str)
{
for(i=0;i<str.length;i++)
if((str.charAt(i))>'0' && (str.charAt(i)<'9'))
return true;
return false;
}
function isHasLetter(str)
{
for(i=0;i<str.length;i++)
if(((str.charAt(i))>'a' && (str.charAt(i)<'z')) || ((str.charAt(i))>'A' && (str.charAt(i)<'Z')))
return true;
return false;
}
function isHasDightLetter(str)
{
var result = /^(?!\d+$)(?!\D+$)[a-zA-Z\d]{8,}$/.test(str);
return result;
}
</script>
还是不能正确判断。
好比我输入 asd!@#123
<input type="text" id="otxt" onblur="fnCheck();"/>
<script type="text/javascript">
<!--
function isHasDightLetter(str)
{
var result = /^(?!\d+$)(?!\D+$)[a-zA-Z\d]{8,}$/.test(str);
return result;
} function fnCheck(){
var opass = document.getElementById("otxt");
if(!isHasDightLetter(opass.value)){
alert("新密码必须包含字母和数字,并且最少为8位.");
opass.value = "";
return false;
}
}
//-->
</script>我这里没问题的 楼主检查下
好比输入 asd!sssssssssss9
<input type="text" id="otxt" onblur="fnCheck();"/>
<script type="text/javascript">
<!--
function isHasDightLetter(str)
{
if(str.search(/\d/) > -1 && str.search(/[a-z]/i) > -1){
result = /^[\S]{8,}$/.test(str);
return result;
}else{
return false;
}
} function fnCheck(){
var opass = document.getElementById("otxt");
if(!isHasDightLetter(opass.value)){
alert("新密码必须包含字母和数字,并且最少为8位.");
opass.value = "";
return false;
}
}
//-->
</script>