<div>
中文名:<input id="txtName" type="text" /><br />
身份证号:<input id="txtPersonID" type="text" /><br />
<input type="button" value="测试" onclick="chk();" />
</div>
<script type="text/javascript">
//input text文本录入框数据统一检查
//items:检查配置项,传入对象数组
//配置项键说明:ID:录入控件ID; ColumnName:录入内容字段名,MustInput:是否必填,Check:检查方式[1:如果是值格式固定的检查用正则表达式,这里传入正则表达式的字符串 2:其它特殊值格式检查,可以自定义检查函数,这里传入检查函数(参数为文本框的值,返回值bool类型)],CheckErrInfo:检查失败提示信息
function checkInput(items) {
var info = "";
//检查参数类型
if (typeof items == "object" && typeof items.length == "number") {
for (var i = 0; i < items.length; i++) {
if (typeof items[i].ID != 'string' || typeof items[i].ColumnName != 'string' || typeof items[i].MustInput != 'boolean' || (typeof items[i].Check != 'string' && typeof items[i].Check != 'function') || typeof items[i].CheckErrInfo != 'string') continue; //取值
var value = document.getElementById(items[i].ID).value;
//必填项检查
if (items[i].MustInput == true) {
if (value == '') {
info += items[i].ColumnName + "必填;";
}
}
else {
continue; //不是文本框,
}
//检查数据规范
if (value != '') {
if (typeof items[i].Check == 'string') {
if (!regValid(items[i].Check, value)) {
info += items[i].ColumnName + items[i].CheckErrInfo + ";";
}
}
else if (typeof items[i].Check == 'function') {
if (!items[i].Check(value)) {
info += items[i].ColumnName + items[i].CheckErrInfo + ";";
}
}
}
}
}
return info;
} function regValid(regStr, value) {
var rtn = false;
if (typeof regStr == "string" && regStr != '' && typeof value == 'string') {
var re = new RegExp(regStr);
rtn = re.test(value);
}
return rtn;
} //测试
function chk() {
var chkItems = new Array();
//正则表达式检查中文名称
chkItems.push({ "ID": "txtName", "ColumnName": "名称", "Check": "^[\u4E00-\u9FA5\uF900-\uFA2D]{2,4}$", "MustInput": true, "CheckErrInfo": "只能2-4位汉字" });
//也可以自定义函数检查,这里用chkPersonId
chkItems.push({ "ID": "txtPersonID", "ColumnName": "身份证号", "Check": chkPersonId, "MustInput": true, "CheckErrInfo": "只能17位数字+1位数字或字母" });
var msg = checkInput(chkItems);
if (msg != '') alert(msg);
} //自定义检查函数
function chkPersonId(personId) {
return regValid("^[0-9]{17}[0-9a-zA-Z]{1}$", personId);
} </script>

html 根据配置项统一检查文本框数据规范的更多相关文章

  1. js获取div中的文本框数据

    通过div得到div里的所有数据 大神的世界无需解释,当然不是说我,当我看到这些代码的时候我惊呆了! 这是一个工具方法js: js: /* * 获取指定对象下的所有input.textarea值 * ...

  2. 第八章 watch监听 83 名称案例-使用watch监听文本框数据的变化

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  3. excel单元格数据与文本框数据同步

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Shapes().TextFrame2.TextRan ...

  4. ajax实例及实现文本框异步搜素

    search.jsp(WebContent/jsp/search.jsp) <%@ page language="java" contentType="text/h ...

  5. appium+python 清空文本框EditText的值

    清空EditText的自动化脚本编写流程: 前提条件:进入到要删除文本框的页面 1.查找到要删除的文本框,可通过id.name等属性进行查找 2.点击 3.通过get_attribute(" ...

  6. 关于ComboGrid取值为非下拉框数据是,隐藏面板数据清空

    $('#areaGuid').combogrid({ panelWidth: 300, idField: 'guid', textField: 'name', mode: 'remote', meth ...

  7. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

  8. asp.net mvc 数据查询赋值到文本框中

    大家做了很多文本框查询并且赋值回来 1.先是把数据对象查询结果后台,然后把对象赋值给对象在赋值回来前台页面 2.使用@html helerper 数据查询,使用 ViewContext.RouteDa ...

  9. easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字

    先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...

  10. 对于MyBatis的模糊查询的实现+文本框、单选框以及复选框的数据回显的实现

    MyBatis的模糊查询sql语句与之前使用的不太一样 主要是利用下面这种语句实现的(查了好久的,认真记一下吧!) select * from huodong where theme like con ...

随机推荐

  1. Python语言中当前工作目录(Current Working Directory, cwd)与模块搜索第一路径都是指什么???

    相关: 查看并添加python中库的搜索路径 [python]自问自答:python -m参数? ( python3.7 版本 ) 本文主要解释Python语言中的两个基本概念: 当前工作目录(Cur ...

  2. pytorch中使用vutils对多张图像进行拼接 (import torchvision.utils as vutils)

    1.png 2.png 在pytorch中使用torchvision的vutils函数实现对多张图片的拼接.具体操作就是将上面的两张图片,1.png和2.png的多张图片进行拼接形成一张图片,拼接后的 ...

  3. PHP 红包功能代码

    前段时间被问这个问题,最近有空就写写啦,还是挺有趣的 首先做下抢红包方法分类: 对于发红包的人来说,一共有大致3类(其他的我暂时没想到,有想到可以联系我呀~) 一.拼手气红包个数不定(完全看运气) 二 ...

  4. Camera | 12.瑞芯微摄像头自动焦距马达驱动移植

    本为你主要讲解如何让摄像头ov13850支持自动对焦功能. 摄像头的对角主要通过VCM马达驱动芯片DW9714来实现的. 一.环境 soc : rk3568 board: EVB1-DDR4-V10 ...

  5. WIN32下的模拟时钟

    #include <Windows.h> #include <math.h> #include <tchar.h> #include "resource. ...

  6. Linux 扩展磁盘分区

    之前安装 Ubuntu 虚拟机时使用的都是默认配置,虚拟机硬盘分配了 60 GB.后来想要扩容,特此记录一下扩容过程. 在操作前请做好备份 首先在 VMware 中修改虚拟硬盘大小. 然后进入虚拟机, ...

  7. docker高级篇第三章-dockerfile案例之制作自己的centos镜像

    在上一篇文章中<Dockerfile介绍及常用保留指令>,我们介绍了Dockerfile是什么以及Dockerfile常用的保留字段.熟悉了这些之后,有没有想自己动手写一个Dockerfi ...

  8. 使用 nuxi generate 进行预渲染和部署

    title: 使用 nuxi generate 进行预渲染和部署 date: 2024/9/4 updated: 2024/9/4 author: cmdragon excerpt: 通过 nuxi ...

  9. pyspark 数据类型及转换

    spark 有哪些数据类型 https://spark.apache.org/docs/latest/sql-reference.html Spark 数据类型 Data Types Spark SQ ...

  10. 总结篇3:redis 典型缓存架构设计问题及性能优化

    聊聊对于缓存预热.缓存穿透.缓存雪崩.缓存击穿.缓存更新.缓存降级的定义理解 缓存穿透 定义 当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶 ...