JavaScript 表单验证

Stella981
• 阅读 482

客户端验证优点:

•当用户输入错误数据时,页面不需要重新加载,可以保持用户输入的数据状态,所以不要再一次输入所有数据,只输入错误数据即可。

•减轻了服务器端通信压力

•使得用户界面响应更加迅速

缺点:

•JavaScript不能作为唯一的验证方法(JavaScript可能不可用,甚至可能被故意关闭以阻止进行验证)。

•这可能会产生这样一个错觉,验证输入数据是非常简单的过程。其实不是这样,而且它对产品的安全性和可用性都是非常关键的。

字符串常用方法:

•charAt(n) :返回字符串中第n个位置的字符,从0开始。

•charCodeAt(n) :返回字符串中第n个位置字符的ASCII值,第一个位置为0。

•indexOf(search) :返回search在主字符串中的位置,如果没有则返回-1。

•lastIndexOf(search)  :返回search在主字符串中的最后位置,没有则返回-1。

•slice(start, end) :返回start和end之间的字符串,如果没有提供end则返回从start开始所有的字符串。

•split(search) :将字符串分割成数组,数组元素为search周围的字符串,search本身不包含在数组中。

•substr(start, n) :将从start开始的n个字符作为字符串返回。

•substring(start, end) :返回start和end之间的字符串。

数字验证:

•Number() :将括号内的值转换为数字。

•isNaN(n) :检验n是否为数字(整数或者浮点型)。

•parseInt() :将字符串转换为整数(只转换从左侧第一位开始的数字值,非数字值不做转换,若第一位既为非数字值,返回NaN)。

•parsetFloat() :将字符串转换为浮点数(转换方式与parseInt类似)。

练习:使用字符串常用方法验证一个字符串是否为邮件格式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
    function check(){
        var mail=document.getElementById('email').value;
        if(mail == '' || mail == null){
            alert('不能为空');
            return false;
        }
        if(mail.indexOf('@') != -1 && mail.substr(0,1) == '@' || mail.indexOf('@') != mail.lastIndexOf('@')){
            alert('@不对');
            return false;
        }
        if(mail.indexOf('.') == -1 || mail.indexOf('.') == mail.length-1 || mail.indexOf('.') <= mail.indexOf('@')+1 || mail.lastIndexOf('.') == mail.length-1){
            alert('.不对');
            return false;
        }
        return true;
    }
    </script>
</head>
<body>
    <form action="">
        <input type="text" name="youjian" id="email">
        <input type="submit" onclick=" return check()">
    </form>
</body>
</html>
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之数据校验与处理
填报校验分为四种:长度验证、内容校验、计算校验、JavaScript校验。长度校验非空验证就是验证该单元格的值不能为空。内容校验适宜于验证输入内容的格式,譬如:邮箱验证、身份证验证、手机号码验证、邮政编码验证等。计算效验计算效验就是可以进行一些简单的计算校验。JavaScript校验JavaScript校验就是可以与使用一些javascript语言进行校验。
Easter79 Easter79
3年前
Tp5安全篇入门
输入安全设置public目录为唯一对外访问目录,不能把资源文件放入到应用目录;使用框架提供的请求变量获取方法(Request类的param方法及input助手函数)而不是原生系统变量获取用户输入的数据;使用验证类或者验证方法对业务数据设置必要的验证规则;设置安全过滤函数对用户输入的数据进行过滤处理。
Stella981 Stella981
3年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这