密码验证合格程序 描述 密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 3.不能有长度大于2的子串重复 (注:其他符号不含空格或换行) 输入描述: 一组字符串。 输出描述: 如果符合要求输出:OK,否则输出NG
时间: 2024-05-29 13:11:48 浏览: 169
示例1:
输入
021Abc9000
输出
OK
示例2:
输入
021Abc9Abc1
输出
NG
说明
第三组密码中重复出现了长度大于2的子串abc。
示例3:
输入
021ABC9000
输出
NG
说明
第三组密码中只包含了两种类型的字符(大小写字母和数字),不满足要求。
解题思路:
1、判断长度是否超过8位
2、判断是否包含大小写字母、数字、其它符号,至少三种
3、判断是否有长度大于2的子串重复
4、如果以上条件都满足,则输出OK,否则输出NG
python代码如下:
相关问题
使用正则表达式测试用户名、密码和手机号是否符合要求。 要求:密码--长度8~20位,英文大小写字母、数字、特殊符号(键盘最上的符号) 确认密码--和密码内容一样。 用户名--长度6~10位,英文大小写字母 手机号--以13、15、16、17、18、19开头的11位数字
你可以使用以下正则表达式来测试用户名、密码和手机号是否符合要求:
```javascript
// 验证密码:长度8~20位,英文大小写字母、数字、特殊符号
var passwordReg = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,20}$/;
// 验证确认密码:和密码内容一样
var confirmPasswordReg = /^.*$/; // 这里只是为了演示,实际上应该在前端验证时通过 JavaScript 来判断是否和密码内容一样
// 验证用户名:长度6~10位,英文大小写字母
var usernameReg = /^[a-zA-Z]{6,10}$/;
// 验证手机号:以13、15、16、17、18、19开头的11位数字
var phoneReg = /^1[3|5|6|7|8|9]\d{9}$/;
```
使用时,你可以将需要验证的字符串和相应的正则表达式进行匹配,如果匹配成功,则说明符合要求,否则不符合要求。例如:
```javascript
var password = 'Abc12345!'; // 密码
var confirmPassword = 'Abc12345!'; // 确认密码
var username = 'MyUser'; // 用户名
var phone = '13812345678'; // 手机号
if (passwordReg.test(password)) {
console.log('密码格式正确');
} else {
console.log('密码格式错误');
}
if (confirmPasswordReg.test(confirmPassword) && confirmPassword === password) {
console.log('确认密码格式正确');
} else {
console.log('确认密码格式错误或与密码不一致');
}
if (usernameReg.test(username)) {
console.log('用户名格式正确');
} else {
console.log('用户名格式错误');
}
if (phoneReg.test(phone)) {
console.log('手机号格式正确');
} else {
console.log('手机号格式错误');
}
```
注意:这里只是演示,实际上应该在前端验证时通过 JavaScript 来判断确认密码是否和密码内容一样。
请编写一个正则表达式,用于验证密码格式是否符合要求: 只能是大小写字母或数字或英文标点符号,不能是空白字符 长度至少为10位,且必须至少包含一个大写字母、一个小写字母、一个符号
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#\$%\^&\*\(\)\-_=\+{}\[\]|\\:;"'<>,\.\?/])(?!.*\s).{10,}$
解释:
^:匹配字符串的开头
(?=.*[a-z]):至少包含一个小写字母
(?=.*[A-Z]):至少包含一个大写字母
(?=.*\d):至少包含一个数字
(?=.*[!@#\$%\^&\*\(\)\-_=\+{}\[\]|\\:;"'<>,\.\?/]):至少包含一个符号
(?!.*\s):不能包含空白字符
.{10,}:长度至少为10位
$:匹配字符串的结尾
阅读全文