jQuery-表单校验

article/2025/10/1 4:03:43

为什么要表单验证

    1.减轻服务器的压力      2.保证输入的数据符合要求

常用的表单验证

  1. 日期格式
  2. 表单元素是否为空
  3. 用户名和密码
  4. E-mail地址
  5. 身份证号码

表单选择器

语法

描述

示例

:input

匹配所有inputtextareaselectbutton 元素

$("#myform  :input")选取表单中所有的inputselectbutton元素

:text

匹配所有单行文本框

$("#myform  :text")选取email 和姓名两个input 元素

:password

匹配所有密码框

$("#myform  :password" )选取所有

<input type="password" />元素

:radio

匹配所有单项按钮

$("#myform  :radio")选取<input type="radio" />元素

:checkbox

匹配所有复选框

$(" #myform  :checkbox " )选取

<input type="checkbox " />元素

:submit

匹配所有提交按钮

$("#myform  :submit " )选取

<input type="submit " />元素

语法

描述

示例

:image

匹配所有图像域

$("#myform  :image" )选取

<input type=" image" />元素

:reset

匹配所有重置按钮

$(" #myform  :reset " )选取

<input type=" reset " />元素

:button

匹配所有按钮

$("#myform  :button" )选取button 元素

:file

匹配所有文件域

$(" #myform  :file" )选取

<input type=" file " />元素

:hidden

匹配所有不可见元素,或者type hidden的元素

$("#myform  :hidden" )选取<input type="hidden " />style="display: none"等元素

属性过滤选择器

语法

描述

示例

:enabled

匹配所有可用元素

$(" #userform :enabled" )匹配form内部除编号输入框外的所有元素

:disabled

匹配所有不可用元素

$(" #userform :disabled" )匹配编号输入框

:checked

匹配所有被选中元素(复选框、单项按钮、select 中的option

$(" #userform :checked" )匹配“性别”中的“男”选项和“爱好”中的“编程”选项

:selected

匹配所有选中的option 元素

$(" #userform :selected" ) 匹配“家乡”中的“北京”选项

验证表单内容:

使用String 对象验证邮箱:不能为空,格式正确。

非空验证:

if (mail == "") {        【检测Email是否为空】alert("Email不能为空");return false;}

字符串查找:indexOf():

查找某个指定的字符串值在字符串中首次出现的位置

var str="this is JavaScript";var selectFirst=str.indexOf("Java");    【返回8】var selectSecond=str.indexOf("Java",12);        【返回-1】

文本框内容的验证:

密码不能为空,不少于6个字符,姓名不能为空,不能有数字。

长度验证:

if(pwd.length<6){          【length属性可以获取字符串长度】alert("密码必须等于或大于6个字符");return false;}

判断字符串是否有数字:

使用for循环和substring()方法依次截断单个字符,再判断每个字符是否是数字

for (var i = 0; i < user.length; i++) {var j = user.substring(i, i + 1);     【截取单个字符】if (isNaN(j) == false) {alert("姓名中不能包含数字");return false;}}

表单验证事件和方法

表单验证需要综合运用元素的事件和方法:

类别

名称

描述

事件

onblur

失去焦点,当光标离开某个文本框时触发

onfocus

获得焦点,当光标进入某个文本框时触发

方法

blur()

从文本域中移开焦点

focus()

在文本域中设置焦点,即获得鼠标光标

select()

选取文本域中的内容,突出显示输入区域的内容

正则表达式:

为什么需要正则表达式:

  1. 简洁的代码
  2. 严谨的验证文本框中的内容

示例:

var reg= /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;if(reg.test(email) ==false){   $email_prompt.html("电子邮件格式不正确,请重新输入");return false;   }

 

普通方式:

var reg=/表达式/附加参数

var reg=/white/;var reg=/white/g;

【表达式必须是常量字符串】

【用某些附加参数来代表一些规则:g代表可以进行全局匹配;i代表不区分大小写;m代表可以进行多行匹配】

构造函数:var reg=new RegExp("表达式","附加参数")

var reg=new RegExp("white");var reg=new RegExp("white","g");

【表达式必须是可以是字符串,也可以是JavaScript当中的常量】

 

简单模式:

只能表示具体的匹配

var reg=/china/;var reg=/abc8/;

复合模式:可以使用通配符表达更为抽象的规则模式

var reg=/^\w+$/;var reg=/^\w+@\w+\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2,3})?$/;

RegExp对象:

RegExp对象的方法:

方法

描述

exec

检索字符中是正则表达式的区配,返回找到的值,并确定其位置

test

检索字符串中指定的值,返回truefalse

RegExp对象的属性:

属性

描述

global

RegExp对象是否具有标志g

ignoreCase

RegExp对象是否具有标志i

multiline

RegExp对象是否具有标志m

String对象:

String对象的方法:

方法

描述

match

找到一个或多个正则表达式的匹配

search

检索与正则表达式相匹配的值

replace

替换与正则表达式匹配的字符串

split

把字符串分割为字符串数组

Match和search的区别:

search在一个字串对象中查找关键词字串,若匹配则返回关键词在目标字串中第一次出现的位置序列,如果不匹配,就返回-1;search方法只关心有无匹配,找到匹配,就提供返回值,并中断查找。

match是在目标字串对象中寻找与关键词匹配与否的一个方法,它能通过关键词的规则创建实现复杂搜寻功能;不建立规则的前提下,match可当作search来使用,语法也一样,不同的是,若匹配它返回的是关键词自身,若不匹配返回null。

正则表达式符号:

符号

描述

/…/

代表一个模式的开始和结束

^

匹配字符串的开始

$

匹配字符串的结束

\s

任何空白字符

\S

任何非空白字符

\d

匹配一个数字字符,等价于[0-9]

\D

除了数字之外的任何字符,等价于[^0-9]

\w

匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]

\W

任何非单字字符,等价于[^a-zA-z0-9_]

.

除了换行符之外的任意字符

符号

描述

{n}

匹配前一项n

{n,}

匹配前一项n次,或者多次

{n,m}

匹配前一项至少n次,但是不能超过m

*

匹配前一项0次或多次,等价于{0,}

+

匹配前一项1次或多次,等价于{1,}

匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}

 

正则示例:

对年龄进行验证,年龄必须在0-120之间

  1. 0-9这个范围是一位,正则表达式为\d
  2. 10-99这个范围都是两位数,正则表达式为[1-9]\d
  3. 100-119这个范围是三位数,正则表达式为1[0-1]\d
  4. 所有年龄的个位都是0-9,当百位是1,十位是0-1,正则表达式为(1[0-1]|[1-9])?\d
  5. 年龄120是单独的一种情况,需要单独列出来

 

验证方法示例:

用.test来检测是否符合设置的正则表达式

$(document).ready(function(){$("#code").blur(function(){var code = $(this).val();var $codeId = $("#divCode");var regCode = /^\d{6}$/;if (regCode.test(code) == false) {$codeId.html("邮政编码不正确,请重新输入");return false;}$codeId.html("");return true;    }  );

使用HTML5的方式验证表单:

HTML5新增验证属性:

属性

描述

placeholder

提供一种提示(hint),输入域为空时显示,获得焦点输入内容后消失

required

规定输入域不能为空

pattern

规定验证input域的模式(正则表达式)

示例:

<input type="text" id="uName" placeholder="英文、数字长度为6-10个字符" required pattern="[a-zA-Z0-9]{6,10}"  /><input type="password" id="pwd" placeholder="长度为6-16个字符" required pattern="[a-zA-Z0-9]{6,16}"/>

 

validity属性:

为了在使用required、pattern时有更好的提示

属性

描述

valueMissing

表单元素设置了required特性,则为必填项。如果必填项的值为空,就无法通过表单验证,valueMissing属性会返回true,否则返回false

typeMismatch

输入值与type类型不匹配。HTML 5新增的表单类型如emailnumberurl等,都包含一个原始的类型验证。如果用户输入的内容与表单类型不符合,则typeMismatch属性将返回true,否则返回false

patternMismatch

输入值与pattern特性的正则表达式不匹配。如果输入的内容不符合pattern验证模式的规则,则patternMismatch属性将返回true,否则返回false

 

属性

描述

stepMismatch

输入的值不符合step特性所推算出的规则。用于填写数值的表单元素可能需要同时设置minmaxstep特性,这就限制了输入的值必须是最小值与step特性值的倍数之和。例如范围从010step特性值为2,因为合法值为该范围内的偶数,其他数值均无法通过验证。如果输入值不符合要求,则stepMismatch属性返回true,否则返回false

customError

使用自定义的验证错误提示信息。使用setCustomValidity( )方法自定义错误提示信息:setCustomValidity(message)会把错误提示信息自定义为message,此时customError属性值为truesetCustomValidity("")会清除自定义的错误信息,此时customError属性值为false

 


http://chatgpt.dhexx.cn/article/9m1IgwED.shtml

相关文章

jQuery实现表单验证

1.基于html表单&#xff0c;利用jQuery实现表单验证功能。 2.html基本结构和样式&#xff1a; 3.html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <h…

JQuery-表单验证

1.什么是表单验证&#xff1f; 表单验证是javascript中的高级选项之一。 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。 2.为什么表单验证&#xff1f; 减轻服务器的压力 。 保证输入的数据符合要求。 3.案例 实现表单验证的案例在这里用GiWiFI页面…

SurfaceTexture

SurfaceTexture 类是在 Android 3.0 中引入的。就像 SurfaceView 是 Surface 和 View 的结合一样&#xff0c;SurfaceTexture 是 Surface 和 GLES texture 的粗糙结合&#xff08;有几个警告&#xff09;。 当你创建了一个 SurfaceTexture&#xff0c;你就创建了你的应用作为消…

UserWarning: findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans

Python数据可视化分析时出现UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans…报错 原因&#xff1a;库中没有关于’Microsoft YaHei’的引用 换一种字体记一下 如 字体中文名称字体英文名称黑体SimHei宋体SimSun新宋体NSimSum…

The tag <fonta> is unrecognized in this browser. If you meant to render a React component, start its

写react 组件样式 styled-components 报错 是因为react 千万记住开头字母是大写 由于这个f小写了 但是这个是当成了一个组件在用 所以会一直报错 改为大写就会解决了 小伙伴们千万注意 react的项目组建开头必须大写

createfont(CreateFontIndirectW)

如何用CreateFont创建制定点大小的字符 import java.awt.Font; import java.io.File; import java.io.FileInputStream; public class Loadfont public static Font loadFont(String fontFileName, float fontSize) //第一个参数是外部字体名&#xff0c;第二个是字体大小 File…

MindFusion.WinForms Pack 2022.R2

MindFusion.WinForms Pack 2022.R2 每个节点多个标签-允许为单个流程图节点显示多个标题。您可以自定义节点标签&#xff0c;包括显示和定位。 混杂的 bhMoveLabels行为现在允许用户交互移动链接和节点标签。 水平偏移和垂直偏移现在适用于使用SetLinkLengthPosition方法定位的…

findfont: Font family [‘Times New Roman‘] not found. Falling back to DejaVu Sans.字体安装

问题描述 使用python对数据进行可视化的时候&#xff0c;matplotlib绘图的时候&#xff0c;提示警告如题所示&#xff1a; UserWarning: findfont: Font family [Times New Roman] not found. Falling back to DejaVu Sans. 环境说明&#xff1a;使用的是 CentOS系统&#xf…

Could not load file or assembly ‘office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce11

Could not load file or assembly office, Version12.0.0.0, Cultureneutral, PublicKeyToken71e9bce11 window10 Could not load file or assembly office, Version12.0.0.0, Cultureneutral, PublicKeyToken71e9bce11 新的改变 我们对Markdown编辑器进行了一些功能拓展与语…

jasperreports6.12.2 could not load the following font解决方法

jasperreports通过Java代码生成PDF的时候不能获取中文字体&#xff0c;报错提示如下&#xff1a; net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: pdfFontName: STSong-Light pdfEncoding: Identity-H isPdfEmbedded : true本次环境&…

快速小巧的粘贴应用程序Hasty Paste

什么是 Hasty Paste? Hasty Paste 是一个快速粘贴文本并共享的地方&#xff0c;主要用于共享调试日志等&#xff0c;以帮助开发人员提供技术支持。该项目的目标是既快又小。 命令行安装 在群晖上以 Docker 方式安装。 官方的镜像没有发布在 docker hub&#xff0c;而是在 gh…

SpringBoot--解决BigDecimal传到前端后精度丢失的问题

原文网址&#xff1a;SpringBoot--解决BigDecimal传到前端后精度丢失的问题_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍SpringBoot如何解决BigDecimal传到前端后精度丢失问题。 解决方案是&#xff1a;转成字符串格式返回。 问题描述 实例 Controller package com.…

BigDecimal 简单使用

目录 为什么使用BigDecimal 解决方案 构造方法 类型转换 double 转 BigDecimal BigDecimal 转 String BigDecimal 转 double/int/long等 加减乘除取余 divide 舍入模式 比较大小 格式化(DecimalFormat) 小结 为什么使用BigDecimal 1.float和double类型的主要设计目…

BigDecimal用法

文章目录 1、创建一个BigDecimal对象1.1、常用构造函数1.1、常用计算方法 2、BigDecimal很方便的几个用法2.1、用BigDecimal去除小数点后多余的0&#xff1a;stripTrailingZeros()2.2、BigDecimal的原值和科学计数值2.3、用BigDecimal比较大小&#xff1a;compareTo()2.4、BigD…

mysql bigdecimal查询_mysql bigdecimal

java学习:Java中的其它类 568x573 - 55KB - JPEG Java中BigDecimal类你了解多少?! 720x480 - 30KB - JPEG TypeHandlers 640x396 - 25KB - JPEG BigDecimal equals方法可能不相等 678x260 - 9KB - JPEG

BigDecimal 详解

一&#xff0c;BigDecimal的简介 Java在java.math包中提供的API类BigDecimal&#xff0c;用来对超过16位有效位的数进行精确的运算。 双精度浮点型变量double可以处理16位有效数。在实际应用中&#xff0c;需要对更大或者更小的数进行运算和处理。float和double只能用来做科学…

BigDecimal加减乘除计算

BigDecimal的运算——加减乘除 首先是bigdecimal的初始化 这里对比了两种形式&#xff0c;第一种直接value写数字的值&#xff0c;第二种用string来表示 我们对其进行加减乘除绝对值的运算,其实就是Bigdecimal的类的一些调用 BigDecimal num1 new BigDecimal(0.005);BigDecim…

java 中 BigDecimal 详解

首先&#xff0c;学习一个东西&#xff0c;我们都必须要带着问题去学&#xff0c;这边我分为 【为什么&#xff1f;】【是什么&#xff1f;】【怎么用&#xff1f;】 【为什么要用BigDecimal&#xff1f;】 首先&#xff0c;我们先看一下&#xff0c;下面这个现象 那为什么会…

Java —— JDBC关闭Statement后是否还需要关闭ResultSet?

一、问题描述 下面的代码使用了try-with-resource语法&#xff0c;会自动关闭Connection和Statement,是否还需要关闭ResultSet&#xff1f; Statement关闭后ResultSet会被回收么&#xff1f; 二、JDBC规范 JDBC规范4.3中有对Statement关闭后是否需要关闭ResultSet进行说明。…

ResultSet(结果集)、Statement

ResultSet 基本介绍&#xff1a; 1.表示数据库结果集的数据表&#xff0c;通常通过执行查询数据库的语句生成 2.ResultSet对象保持一个光标指向其当前的数据行&#xff0c;光标最初在第一行之前 3.next()方法是将光标移动到下一行&#xff0c;并且由于在ResultSet对象中没有…