当前位置:首页 > JavaScript

js实现留言验证

2026-04-07 14:20:55JavaScript

实现留言验证的 JavaScript 方法

客户端验证

使用 JavaScript 在表单提交前进行基本验证,确保用户输入符合要求。

document.getElementById('commentForm').addEventListener('submit', function(event) {
    const name = document.getElementById('name').value.trim();
    const email = document.getElementById('email').value.trim();
    const message = document.getElementById('message').value.trim();
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

    if (name === '') {
        alert('请输入姓名');
        event.preventDefault();
        return;
    }

    if (!emailRegex.test(email)) {
        alert('请输入有效的邮箱地址');
        event.preventDefault();
        return;
    }

    if (message.length < 10) {
        alert('留言内容至少需要10个字符');
        event.preventDefault();
        return;
    }
});

服务端验证

即使通过客户端验证,仍需在服务端进行二次验证以防止绕过前端检查。

// Node.js 示例
app.post('/submit-comment', (req, res) => {
    const { name, email, message } = req.body;
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

    if (!name || !email || !message) {
        return res.status(400).send('所有字段均为必填');
    }

    if (!emailRegex.test(email)) {
        return res.status(400).send('无效的邮箱格式');
    }

    if (message.length < 10) {
        return res.status(400).send('留言内容过短');
    }

    // 通过验证,处理留言
    // ...
});

验证码集成

防止自动化提交,可添加验证码功能。

<!-- reCAPTCHA 示例 -->
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
// 验证 reCAPTCHA
function validateCaptcha() {
    const response = grecaptcha.getResponse();
    if (response.length === 0) {
        alert('请完成验证码');
        return false;
    }
    return true;
}

输入过滤

防止 XSS 攻击,对用户输入进行过滤。

function sanitizeInput(input) {
    return input.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

实时反馈

提供实时验证反馈,提升用户体验。

document.getElementById('message').addEventListener('input', function() {
    const length = this.value.length;
    const feedback = document.getElementById('length-feedback');
    feedback.textContent = `${length}/100`;
    if (length < 10) {
        feedback.style.color = 'red';
    } else {
        feedback.style.color = 'green';
    }
});

防重复提交

防止用户多次提交相同内容。

js实现留言验证

let lastSubmitTime = 0;
document.getElementById('commentForm').addEventListener('submit', function(event) {
    const currentTime = Date.now();
    if (currentTime - lastSubmitTime < 30000) {
        alert('30秒内只能提交一次');
        event.preventDefault();
        return;
    }
    lastSubmitTime = currentTime;
});

标签: 留言js
分享给朋友:

相关文章

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…

js实现同步

js实现同步

同步与异步的概念 在JavaScript中,同步代码会按照顺序执行,每一行代码必须等待上一行代码执行完成后才能运行。异步代码则允许在等待某些操作(如网络请求)完成的同时继续执行其他代码。 实现同步的…