当前位置:首页 > 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;
    }
});

服务端验证

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

js实现留言验证

// 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 攻击,对用户输入进行过滤。

js实现留言验证

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';
    }
});

防重复提交

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

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实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…