。求一个js程序判断,密码必须全部为数字,但是不允许像上面的连续6个相近和相同的数字,但是允许这样:123459,123854,888889。在线等!
15 个解决方案
#1
用正则不更简单吗 "^\\d{6}$"
#2
你这个正则不行!请测试一下!
#3
var str = document.getElementById("sentence").value;
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}
#4
楼主看看行不
#5
if (str.search("[0-9]{6}") == -1) {
return;
}
这个加上判断是不是6位的数字
return;
}
这个加上判断是不是6位的数字
#6
var r = new RegExp(/\d{6}/);
var s ='123456';
var a = s.match(/\d/g);
var is = false;
if(!r.test(s))
{
alert('格式错误!');
}else
{
for(var i=0,len=a.length-1;i<len;i++){
if(parseInt(a[i])+1!=a[i+1])
{
is = true;
break;
}
}
if(!is)
alert('不能连续!');
}
#7
function check(str){
var f = parseInt(str.charAt(0));
return /\d{6}/.test(str) && (/^(\d)\1{5}$/.test(str) || str == str.replace(/\d/g, function(v, i){return f+i;}));
}
var str = "Z123456", str2 = "111111", str3="123457";
alert(check(str));
alert(check(str2));
alert(check(str3));
#8
UP
#9
function test(s) {
if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
if (/^(\d)\1+$/.test(s)) return false; // 全一样
var str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)-pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺增
str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)+pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺减
return true;
}
#10
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(v){
if(/^[0-9]{6}$/.test(v)){
var prev=-1,r=0;
v.replace(/(\d{1})/g,function($,$1,i){
if(parseInt(prev)+1==$1)r++
prev=$1
})
if(r==v.length-1)alert('数字不能连续')
else alert('ok');
return;
}
alert('必需为数字!且长度为6');
}
//-->
</SCRIPT>
<input type="text" id="aaaa"/><input type="button" value="check" onclick="check(document.getElementById('aaaa').value)"/>
#11
我忘了告诉大家了还有一种情况也不行,就是,654321。大家的代码我都测试了,都没有处理这种情况!怪我没有说清楚!
#12
我上面不是有么
function test(s) {
if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
if (/^(\d)\1+$/.test(s)) return false; // 全一样
var str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)-pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺增
str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)+pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺减
return true;
}
alert(test("654321"))
#13
<html>
<title></title>
<script type="text/javascript">
window.onload = function(){
document.getElementById("test").onclick = function(){
var passwd = document.getElementById("passwd");
var value = passwd.value;
var reVal = /^\d{6}$/;
if(!reVal.test(value)){
alert("密码必须为六个数字!");
passwd.select();
passwd.focus();
return;
}
var i = 2;
while(i<value.length){
if(parseInt(value.substr(i,1)) - parseInt(value.substr(i-1,1)) != parseInt(value.substr(i-1,1)) - parseInt(value.substr(i-2,1))){
return;
}
i++;
}
alert("密码不能太简单!");
passwd.select();
passwd.focus();
return;
}
}
</script>
<head>
</head>
<body>
<input type="password" id="passwd" />
<input type="button" value="test password" id="test" />
</body>
</html>
#14
indexof
#15
谢谢大家的帮助,问题已经解决。wcwtitxu方法很好!谢谢!
#1
用正则不更简单吗 "^\\d{6}$"
#2
你这个正则不行!请测试一下!
#3
var str = document.getElementById("sentence").value;
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}
#4
楼主看看行不
#5
if (str.search("[0-9]{6}") == -1) {
return;
}
这个加上判断是不是6位的数字
return;
}
这个加上判断是不是6位的数字
#6
var r = new RegExp(/\d{6}/);
var s ='123456';
var a = s.match(/\d/g);
var is = false;
if(!r.test(s))
{
alert('格式错误!');
}else
{
for(var i=0,len=a.length-1;i<len;i++){
if(parseInt(a[i])+1!=a[i+1])
{
is = true;
break;
}
}
if(!is)
alert('不能连续!');
}
#7
function check(str){
var f = parseInt(str.charAt(0));
return /\d{6}/.test(str) && (/^(\d)\1{5}$/.test(str) || str == str.replace(/\d/g, function(v, i){return f+i;}));
}
var str = "Z123456", str2 = "111111", str3="123457";
alert(check(str));
alert(check(str2));
alert(check(str3));
#8
UP
#9
function test(s) {
if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
if (/^(\d)\1+$/.test(s)) return false; // 全一样
var str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)-pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺增
str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)+pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺减
return true;
}
#10
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(v){
if(/^[0-9]{6}$/.test(v)){
var prev=-1,r=0;
v.replace(/(\d{1})/g,function($,$1,i){
if(parseInt(prev)+1==$1)r++
prev=$1
})
if(r==v.length-1)alert('数字不能连续')
else alert('ok');
return;
}
alert('必需为数字!且长度为6');
}
//-->
</SCRIPT>
<input type="text" id="aaaa"/><input type="button" value="check" onclick="check(document.getElementById('aaaa').value)"/>
#11
我忘了告诉大家了还有一种情况也不行,就是,654321。大家的代码我都测试了,都没有处理这种情况!怪我没有说清楚!
#12
我上面不是有么
function test(s) {
if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
if (/^(\d)\1+$/.test(s)) return false; // 全一样
var str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)-pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺增
str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)+pos;
});
if (/^(\d)\1+$/.test(str)) return false; // 顺减
return true;
}
alert(test("654321"))
#13
<html>
<title></title>
<script type="text/javascript">
window.onload = function(){
document.getElementById("test").onclick = function(){
var passwd = document.getElementById("passwd");
var value = passwd.value;
var reVal = /^\d{6}$/;
if(!reVal.test(value)){
alert("密码必须为六个数字!");
passwd.select();
passwd.focus();
return;
}
var i = 2;
while(i<value.length){
if(parseInt(value.substr(i,1)) - parseInt(value.substr(i-1,1)) != parseInt(value.substr(i-1,1)) - parseInt(value.substr(i-2,1))){
return;
}
i++;
}
alert("密码不能太简单!");
passwd.select();
passwd.focus();
return;
}
}
</script>
<head>
</head>
<body>
<input type="password" id="passwd" />
<input type="button" value="test password" id="test" />
</body>
</html>
#14
indexof
#15
谢谢大家的帮助,问题已经解决。wcwtitxu方法很好!谢谢!