<input type="password" class="form-control" name="password" pattern="^[a-z0-9_]{6,18}$" placeholder="密码" required>
时间: 2023-07-06 18:21:44 浏览: 45
这是一个 HTML 代码片段,它定义了一个密码输入框,其中包含以下属性:
- type="password":指定输入框类型为密码,输入的字符将被掩盖。
- class="form-control":指定输入框的样式类,这里可能是使用了 Bootstrap 框架的样式。
- name="password":指定输入框的名称,这个名称将在提交表单时被用来标识这个输入框的值。
- pattern="^[a-z0-9_]{6,18}$":指定了输入的密码必须符合的正则表达式,这个正则表达式要求密码只能包含小写字母、数字和下划线,并且长度必须在 6 到 18 个字符之间。
- placeholder="密码":指定了在输入框为空时显示的提示文本。
- required:指定了这个输入框必须填写,否则表单提交时将会提示错误。
相关问题
<form> <div class="form-group"> <label for="current-password">当前密码</label> <input type="password" class="form-control" id="current-password" name="current-password" placeholder="请输入当前密码" required> <div class="invalid-feedback">请输入当前密码</div> </div> <div class="form-group"> <label for="new-password">新密码</label> <input type="password" class="form-control" id="new-password" name="new-password" placeholder="请输入新密码" pattern=".{6,}" title="密码长度必须大于等于6位" required> <div class="invalid-feedback">密码长度必须大于等于6位</div> </div> <div class="form-group"> <label for="confirm-password">确认密码</label> <input type="password" class="form-control" id="confirm-password" name="confirm-password" placeholder="请再次输入新密码" pattern=".{6,}" title="密码长度必须大于等于6位" required> <div class="invalid-feedback">密码长度必须大于等于6位</div> </div> <button type="submit" class="btn btn-primary">确认修改</button> </form>
这段代码是一个包含三个密码输入框的表单,分别是“当前密码”、“新密码”和“确认密码”。其中,“新密码”和“确认密码”输入框使用了`pattern`属性,规定了密码的最小长度为6位,并给出相应的提示信息。此外,“当前密码”输入框使用了`required`属性,表示该输入框必须填写才能提交表单。
如果要修改为必须有大小写字母加特殊字符组成,且不小于8位,则可以将代码修改为:
```html
<form>
<div class="form-group">
<label for="current-password">当前密码</label>
<input type="password" class="form-control" id="current-password" name="current-password" placeholder="请输入当前密码" required>
<div class="invalid-feedback">请输入当前密码</div>
</div>
<div class="form-group">
<label for="new-password">新密码</label>
<input type="password" class="form-control" id="new-password" name="new-password" placeholder="请输入新密码" required oninput="checkNewPassword()">
<span id="new-password-tip" style="color:red;"></span>
</div>
<div class="form-group">
<label for="confirm-password">确认密码</label>
<input type="password" class="form-control" id="confirm-password" name="confirm-password" placeholder="请再次输入新密码" required oninput="checkConfirmPassword()">
<span id="confirm-password-tip" style="color:red;"></span>
</div>
<button type="submit" class="btn btn-primary">确认修改</button>
</form>
<script>
function checkNewPassword() {
const password = document.getElementById('new-password').value;
const regex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]).{8,}$/;
const isValid = regex.test(password);
const tip = document.getElementById('new-password-tip');
if (isValid) {
tip.innerHTML = '';
} else {
tip.innerHTML = '密码必须包含大小写字母、数字和特殊字符,并且长度不小于8位';
}
}
function checkConfirmPassword() {
const password = document.getElementById('new-password').value;
const confirmPassword = document.getElementById('confirm-password').value;
const tip = document.getElementById('confirm-password-tip');
if (password === confirmPassword) {
tip.innerHTML = '';
} else {
tip.innerHTML = '两次输入的密码不相同';
}
}
</script>
```
这段代码与之前的代码相比,主要是对“新密码”和“确认密码”输入框的校验逻辑进行了修改。在输入框中添加了`oninput`事件,当用户输入密码时,会自动调用`checkNewPassword`和`checkConfirmPassword`函数进行校验。`checkNewPassword`函数的逻辑与前面的前端表单中的校验逻辑相同,都是使用正则表达式判断密码是否符合要求,并在提示信息中显示具体的错误信息。`checkConfirmPassword`函数则用于判断两次输入的密码是否相同,并在提示信息中显示错误信息。
这样修改后,用户必须输入符合要求的新密码才能修改密码,并且两次输入的密码必须相同才能提交表单。
代码实现一个基于Spring boot + Mybatis-Plus+JQUERY+Bootstrap 的留言板
首先,我们需要创建一个 Spring Boot 项目,并添加以下依赖:
```xml
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!-- JSP and JSTL -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Bootstrap and jQuery -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>5.0.0-beta3</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.5.1</version>
</dependency>
```
接着,我们需要配置 MySQL 数据库连接。在 `application.properties` 文件中添加以下配置:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/message_board?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
其中,`message_board` 是我们新建的数据库名。
接下来,我们需要定义留言实体类 `Message`:
```java
@Data
@TableName("message")
public class Message {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private String content;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
```
使用 `@TableName` 注解指定表名,使用 `@TableId` 注解指定主键。
接着,我们需要定义留言 DAO 接口 `MessageMapper`:
```java
public interface MessageMapper extends BaseMapper<Message> {
}
```
继承 `BaseMapper` 接口即可自动获得 CRUD 操作。
然后,我们需要定义留言服务实现类 `MessageServiceImpl`:
```java
@Service
public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements MessageService {
}
```
继承 `ServiceImpl` 类即可自动获得 CRUD 操作的实现。
接下来,我们需要定义留言控制器 `MessageController`:
```java
@Controller
public class MessageController {
@Autowired
private MessageService messageService;
@GetMapping("/")
public String index(Model model) {
List<Message> messages = messageService.list();
model.addAttribute("messages", messages);
return "index";
}
@PostMapping("/add")
public String add(Message message) {
message.setCreateTime(new Date());
messageService.save(message);
return "redirect:/";
}
}
```
使用 `@Autowired` 注解自动注入留言服务实现类。`index` 方法用于展示留言列表,`add` 方法用于添加留言。
最后,我们需要编写留言页面 `index.jsp`:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/webjars/bootstrap/5.0.0-beta3/css/bootstrap.min.css" rel="stylesheet">
<script src="/webjars/jquery/3.5.1/jquery.min.js"></script>
<script src="/webjars/bootstrap/5.0.0-beta3/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container pt-5">
<div class="row">
<div class="col-md-8">
<h1>留言板</h1>
<hr>
<ul class="list-unstyled">
<c:forEach items="${messages}" var="message">
<li>
<h4>${message.name}</h4>
<p>${message.content}</p>
<p class="text-muted">${message.createTime}</p>
</li>
</c:forEach>
</ul>
</div>
<div class="col-md-4">
<h2>添加留言</h2>
<hr>
<form action="/add" method="post">
<div class="mb-3">
<label for="name" class="form-label">姓名</label>
<input type="text" class="form-control" id="name" name="name">
</div>
<div class="mb-3">
<label for="content" class="form-label">内容</label>
<textarea class="form-control" id="content" name="content" rows="5"></textarea>
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
</div>
</div>
</div>
</body>
</html>
```
使用 Bootstrap 和 jQuery 实现样式和交互效果。
最后,启动项目并访问 http://localhost:8080/ 即可看到留言板页面。