`
wfzhanga
  • 浏览: 68800 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

日常JS页面验证封装

阅读更多
/***********************************
* JSP页面输入有效性校验
* author:
* create date:
* update date:
* update content: 此文件在原先使用文件checkvalue.jsp基础上,结合原先的使用经验做了如下改进
* 1 增加函数CheckSpecChar(FormName),直接校验整个form的所有输入控件是否包含非法字符。
* 2 函数CheckInputValue原先传入参数输入框内容,改为输入框对象名称,这样一旦校验不通过,光标可以定位到对象。
* 3 优化日期校验,原先对日期格式只校验输入字符,没有校验长度以及yyyy-mm-dd格式中年月日各自是否满足要求。
* 4 优化Email格式校验
* 5 原先输入框允许为空,同时如果输入内容有最短长度限制时候,无法校验,现已修改,能够支持。
*
* 增加系数Rate类型,不能大于1
* 增加时间Time类型,24h:mi格式
*********************************/
//提交表单时清理所有的非隐藏表单元素值的左右空格并校验是否含有非法字符--liuchuang
function submitclean(FormName){
var str = "'<>\""; //非法字符集
for (var index = 0; index < FormName.elements.length; index++) {
if(FormName.elements[index].type != "hidden"){
//去除左右空格
FormName.elements[index].value = FormName.elements[index].value.replace(/^\s+|\s+$/g,"");
for(i = 0; i < FormName.elements[index].value.length; i++){
if (str.indexOf(FormName.elements[index].value.substring(i,i + 1)) >= 0){
alert("输入的内容不能含有非法字符:" + str);
FormName.elements[index].focus();
return false;
}
}
}
}
return true;
}
//该函数用于带查询条件的显示页面,页面加载时判断哪个form元素应该默认获得焦点--liuchuang
function formFocus(FormName){
var isfocus =false;
for (var index = 0; index < FormName.elements.length; index++) {
if(FormName.elements[index].className=='lc') continue;
if(FormName.elements[index].tagName=='INPUT'
|| FormName.elements[index].tagName=='SELECT'
|| FormName.elements[index].tagName=='TEXTAREA')
{
if(FormName.elements[index].type != "hidden" && FormName.elements[index].value!=""){

FormName.elements[index].focus();
isfocus =true;
break;
}
}
}
if(!isfocus){
for (var index = 0; index < FormName.elements.length; index++) {
if(FormName.elements[index].className=='lc') continue;
if(FormName.elements[index].tagName=='INPUT'
|| FormName.elements[index].tagName=='SELECT'
|| FormName.elements[index].tagName=='TEXTAREA')
{
if(FormName.elements[index].type != "hidden"){

FormName.elements[index].focus();
break;
}
}
}

}
}

//清除文本框字符串的前后所有空格
String.prototype.trim = function() //removes the Left side and the right side blank space
{
return this.replace(/(^\s*)|(\s*$)/g, "")
}

//文本框获得焦点后,如果文本框不为空,则将焦点放置在字符串之后
function cc() //generater after onfocus()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}

//判断Form中所有对象的值中是否有特殊字符
function CheckSpecChar(FormName){
//传入参数为form的名称
bString = "'<>\""; //非法字符集
for (var ObjID=0; ObjID < FormName.elements.length; ObjID++) {
for(i = 0; i < FormName.elements[ObjID].value.length; i ++){
if (bString.indexOf(FormName.elements[ObjID].value.substring(i,i+1)) >= 0){
alert('输入的内容不能包含非法字符:' + bString);
FormName.elements[ObjID].focus();
return false;
}
}
}
return true;
}

//校验不合格后,光标自动定位到不符合格式要求的控件中
function CheckInputValue(input_desc,//输入框内容的中文名称
ObjName ,//输入框对象名称
is_empty,//false-不可以为空;true-可以为空
input_type,//输入框内容类型
input_minlength,//输入框内容的最小长度
input_maxlength//输入框内容的最长长度
){

//不能为空
if(!is_empty && CheckIsNull(ObjName.value)){
alert(input_desc + "不能为空!");
ObjName.value="";//liuchuang补充于20080619:输入空格后,将空格清除!
ObjName.focus();
return false;
}
if(is_empty && CheckIsNull(ObjName.value)){
return true;
}
//输入框内容的最小长度限制,并且输入框不为空,(剔除输入框为空的情况)
if(input_minlength != 0 && ObjName.value.length < input_minlength && ObjName.value.length > 0){
alert(input_desc + "长度不能低于" + input_minlength + "个字符!");
ObjName.focus();
return false;
}

if(input_maxlength != 0 && ObjName.value.length > input_maxlength ){
alert(input_desc + "长度不能超过" + input_maxlength + "个字符!");
ObjName.focus();
return false;
}

/***************
* 统一调用函数CheckSpecChar(FormName),整个form一次检查
* ***************/
/*
if(input_type == "String"){
if(!CheckString(ObjName.value)){
alert(input_desc + "不能包含<、>、'、\"、/、\\");
ObjName.focus();
return false;
}
}*/
if(input_type == "StringNoError"){
if(!CheckStringNoError(ObjName.value)){
alert(input_desc + "不能包含<、>、'、\"、/、\\");
ObjName.focus();
return false;
}
}

if(input_type == "StringNoSpace"){
if(!CheckStringNoSpace(ObjName.value)){
alert(input_desc + "不能包含空格!");
ObjName.focus();
return false;
}
}

if(input_type == "StringNo6up"){
if(!CheckStringNo6up(ObjName.value)){
alert(input_desc + "不能包含\^!");
ObjName.focus();
return false;
}
}

if(input_type == "StringNofg"){
if(!CheckStringNofg(ObjName.value)){
alert(input_desc + "不能包含※!");
ObjName.focus();
return false;
}
}

if(input_type == "StringNoPercent"){
if(!CheckStringNoPercent(ObjName.value)){
alert(input_desc + "不能包含%!");
ObjName.focus();
return false;
}
}

if(input_type == "StringNoSpacePercent"){
if(!CheckStringNoSpacePercent(ObjName.value)){
alert(input_desc + "不能包含空格和%!");
ObjName.focus();
return false;
}
}

if(input_type == "Number"){
if(!CheckNumber(ObjName.value)){
alert(input_desc + "是数字,只能全部由数字组成!");
ObjName.focus();
return false;
}
}

if(input_type == "Number24"){
if(!CheckNumber24(ObjName.value)){
alert(input_desc + ",只能在1-24之间!");
ObjName.focus();
return false;
}
}

if(input_type == "Telephone"){
if(!CheckTelephone(ObjName.value)){
//alert(input_desc + "是电话号码数字、-组成!");
alert(input_desc + "只能由数字、-组成!");
ObjName.focus();
return false;
}
}

if(input_type == "Money"){
if(!CheckMoney(ObjName.value)){
alert(input_desc + "是金额,由数字、.组成!");
ObjName.focus();
return false;
}
}
if(input_type == "Rate"){
if(!CheckRate(ObjName.value)){
alert(input_desc + "是系数,不能大于1!");
ObjName.focus();
return false;
}
}
if(input_type == "Time"){
if(!CheckTime(ObjName.value)){
alert(input_desc + "是时间,格式如下24h:mi!");
ObjName.focus();
return false;
}
}
if(input_type == "Time2"){
if(!CheckTime2(ObjName.value)){
alert(input_desc + "是时间,格式如下24h:mi:ss!");
ObjName.focus();
return false;
}
}
if(input_type == "Date"){
if(!CheckDate(ObjName,input_desc)){
return false;
}
}
if(input_type == "Month"){
if(!CheckMonth(ObjName.value)){
alert(input_desc + "是月份,格式如下yyyy-MM!");
ObjName.focus();
return false;
}
}
if(input_type == "Email"){
if(!CheckEmail(ObjName.value)){
alert(input_desc + "是Email,必须符合格式要求!");
ObjName.focus();
return false;
}
}

if(input_type == "Password"){
if(!CheckPassword(ObjName.value)){
alert(input_desc + "只能包含数字和字母!");
ObjName.focus();
return false;
}
}

if(input_type == "Letter"){
if(!CheckLetter(ObjName.value)){
alert(input_desc + "必须是字母!");
ObjName.focus();
return false;
}
}

if(input_type == "UpLetter"){
if(!CheckUpLetter(ObjName.value)){
alert(input_desc + "必须是大写字母!");
ObjName.focus();
return false;
}
}

if(input_type == "LowLetter"){
if(!CheckLowLetter(ObjName.value)){
alert(input_desc + "必须是小写字母!");
ObjName.focus();
return false;
}
}

if(input_type == "Chinese"){
if(!CheckChinese(ObjName.value)){
alert(input_desc + "必须是全部为中文!");
ObjName.focus();
return false;
}
}
if(input_type == "NoChinese"){
if(!CheckNoChinese(ObjName.value)){
alert(input_desc + "不能包含中文!");
ObjName.focus();
return false;
}
}
return true;
}

//判断控件中字符串是否为空
//By ChengWei 2007-12-12
function CheckIsNull(str) {
if (str.Trim().length == 0) {
return true; //空值
}
return false; //不为空
}
//判断是否没有包含空格
function CheckStringNoSpace(str){
var i;
for (i = 0; i < str.length; i++){
if (str.charAt(i) == " "){
return false;
}
}
return true;
}
//判断是否没有包含"/","\"
function CheckStringNoError(str){
//传入参数为form的名称
bString = "'<>\"\\/"; //非法字符集

for(i = 0; i < str.length; i ++){
if (bString.indexOf(str.substring(i,i+1)) >= 0){
return false;
}
}
return true;
}
//判断是否没有包含%
function CheckStringNoPercent(str){
var i;
for (i = 0; i < str.length; i++){
if (str.charAt(i) == "%"){
return false;
}
}
return true;
}

//判断是否没有包含\^
function CheckStringNo6up(str){
var i;
for (i = 0; i < str.length; i++){
if (str.charAt(i) == "\^"){
return false;
}
}
return true;
}

//判断是否没有包含\*
function CheckStringNofg(str){
var i;
for (i = 0; i < str.length; i++){
if (str.charAt(i) == "※"){
return false;
}
}
return true;
}

//判断是否没有空格和%
function CheckStringNoSpacePercent(str){
var i;
for (i = 0; i < str.length; i++){
if (str.charAt(i) == " " || str.charAt(i) == "%"){
return false;
}
}
return true;
}
//检验是否为数字(整型)
function CheckNumber(str){
var i;
//alert(parseInt(str));
for (i = 0; i < str.length; i++){
if (str.charAt(i) < "0" || str.charAt(i) > "9"){
return false;
}
}
return true;
}

//检验24小时范围
function CheckNumber24(str){
var i;
//alert(parseInt(str));
for (i = 0; i < str.length; i++){
if (str.charAt(i) < "0" || str.charAt(i) > "9"){
return false;
}
}
if(parseInt(str)<1||parseInt(str)>24){
return false;
}
return true;
}

//判断是否符合电话号码,Telephone,由数字和-组成
function CheckTelephone(str){
var i
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "-"){
return false;
}
}
return true;
}
//检验是否为金额(浮点)
function CheckMoney(str){
var i;
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "."){
return false;
}
}
return true;
}
//检验是否为系数,小于等于1
function CheckRate(str){
var i;
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "."){
return false;
}
}
if (parseFloat(str) >1 ){
return false;
}
return true;
}

//检验是否为时间,格式24h:mi
function CheckTime(str){
var i;
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != ":"){
return false;
}
}
if (str.length != 5)
return false;
if (str.substring(2,3) != ":" ) {
return false;
}
ls_hour = str.substring(0,2);
ls_min = str.substring(3,5);

if (parseFloat(ls_hour) > 23 ){
return false;
}
if (parseFloat(ls_min) > 59){
return false;
}
return true;
}
//检验是否为时间,格式24h:mi:ss
function CheckTime2(str){
var i;
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != ":"){
return false;
}
}
if (str.length != 8)
return false;
if (str.substring(2,3) != ":" ) {
return false;
}
if (str.substring(5,6) != ":" ) {
return false;
}
ls_hour = str.substring(0,2);
ls_min = str.substring(3,5);
ls_ss = str.substring(6,8);

if (parseFloat(ls_hour) > 23 ){
return false;
}
if (parseFloat(ls_min) > 59){
return false;
}
if (parseFloat(ls_ss) > 59){
return false;
}
return true;
}
//检验是否为月份,格式yyyy-MM
function CheckMonth(str){
var i;
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && str.charAt(i) != "-"){
return false;
}
}
if (str.length != 7)
return false;
if (str.substring(4,5) != "-" ) {
return false;
}
ls_year = str.substring(0,4);
ls_month = str.substring(5,7);

if (parseFloat(ls_year) < 1900 ){
return false;
}
if (parseFloat(ls_month) > 12){
return false;
}
return true;
}

//判断控件中输入是否都为yyyy-mm-dd格式的日期,
function CheckDate(ObjName,ObjDesc) {

var ln = ObjName.value.length;
//空值看作符合格式要求
if (ln == 0 ) {
return true;
}
if (ln != 10) {
alert( ObjDesc + "只能输入如下日期格式yyyy-mm-dd!");
ObjName.focus();
return false;
}
bString = "0123456789-";
for(i = 0; i < ObjName.value.length; i ++){
if (bString.indexOf(ObjName.value.substring(i,i+1)) == -1) {
alert(ObjDesc + "日期格式只能输入数字和-!");
ObjName.focus();
return false;
}
}

var ls_year, ls_date, ls_month;

if (ObjName.value.substring(4,5) != "-" || ObjName.value.substring(7,8) != "-") {
alert(ObjDesc + "只能输入如下日期格式yyyy-mm-dd!");
ObjName.focus();
return false;
}
ls_year = ObjName.value.substring(0,4);
ls_month = ObjName.value.substring(5,7);
ls_date = ObjName.value.substring(8,10);

if (parseFloat(ls_year) > 2100 || parseFloat(ls_year) < 1900){
alert( ObjDesc + "年份不对!");
ObjName.focus();
return false;
}
if (parseFloat(ls_month) > 12 || parseFloat(ls_year) < 1){
alert(ObjDesc + "月份不对!");
return false;
}
if (parseFloat(ls_date) > 31 || parseFloat(ls_date) < 1){
alert(ObjDesc + "日期不对!");
ObjName.focus();
return false;
}
return true;
}
//判断是否符合Password格式,字母和数字组合
function CheckPassword(str){
var i
for (i = 0; i < str.length; i++){
if ((str.charAt(i) < "0" || str.charAt(i) > "9") && (str.charAt(i) < "A" || str.charAt(i) > "Z") && (str.charAt(i) < "a" || str.charAt(i) > "z")){
return false;
}
}
return true;
}
//判断是否都是字母
function CheckLetter(str){
var i
for (i = 0; i < str.length; i++){
if ( (str.charAt(i) < "A" || str.charAt(i) > "Z") && (str.charAt(i) < "a" || str.charAt(i) > "z")){
return false;
}
}
return true;
}
//判断是否都是大写字母
function CheckUpLetter(str){
var i
for (i = 0; i < str.length; i++){
if ( (str.charAt(i) < "A" || str.charAt(i) > "Z") ){
return false;
}
}
return true;
}
//判断是否都是小写字母
function CheckLowLetter(str){
var i
for (i = 0; i < str.length; i++){
if ( (str.charAt(i) < "a" || str.charAt(i) > "z")){
return false;
}
}
return true;
}

//判断是否为全部中文,当然在其他语言的系统中,如果是日文、韩文也可能,
function CheckChinese(str){
var i ;
for (var i=0;i<str.length;i++){
if (parseInt(str.charCodeAt(i)) <= 256){
return false;
}
}
return true;
}
//判断是否没有中文
function CheckNoChinese(str){
var i ;
for (var i=0;i<str.length;i++){
if (parseInt(str.charCodeAt(i)) > 256){
return false;
}
}
return true;
}

//判断是否符合Email的格式,包含@和. , @在.之前,
function CheckEmail(str){
var index_i;
var index_j;
if(str.length > 0){
index_i = str.lastIndexOf("@");

if(( index_i < 1) ){
return false;
}
index_j = str.indexOf(".", index_i);
if(( index_j < 1) ){
return false;
}

}
return true;
}

//去空格函数
String.prototype.Trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.LTrim = function() {
return this.replace(/(^\s*)/g, "");
}

String.prototype.RTrim = function() {
return this.replace(/(\s*$)/g, "");
}

//****************************************************************
// Description: str 为输入字符串,
// iType为类型,分别为0 - 去除前后空格; 1 - 去前导空格; 2 - 去尾部空格
//****************************************************************
function cTrim(str,iType){
var sTmpStr = ' ';
var i = -1;

if(iType == 0 || iType == 1){
while(sTmpStr == ' '){
++i;
sTmpStr = str.substr(i,1);
}
str = str.substring(i);
}

if(iType == 0 || iType == 2){
sTmpStr = ' ';
i = str.length;
while(sTmpStr == ' '){
--i;
sTmpStr = str.substr(i,1);
}
str = str.substring(0,i+1);
}
return str;
}

function isblank(s)
{
var j=0;
for(var i = 0;i < s.length;i++) {
var c = s.charAt(i);
if ((c != '') && (c != '\n') && (c != '\t') && (c != ' ')) return false;
if (c == ' ')
{
j++;
}
}
if (j == s.length) //全部是空格
{
return true;
}
else
{
return false;
}
}

function isvalid(s)
{
var j=0;
for(var i = 0;i < s.length;i++) {
var c = s.charAt(i);
if ((c == '<') || (c == '>') || (c == '\\') || (c == '/') || (c == '+') || (c == '\'')) return false;
}
return true;
}

function isNum(s)
{
for(var i = 0;i < s.length;i++) {
var v = parseFloat(s.charAt(i));
if (isNaN(v)) return false;
}
return true;
}

//拼音,数字,|组成
function CheckInputStringExt1(inputDesc,obj,isEmpty,minLength,maxLength){
var value = obj.value.Trim();
var str = /^[a-zA-Z\d|]*?$/;
if(!isEmpty && value.length > 0){
alert(inputDesc + "不能为空!");
obj.focus();
return false;
}
if(!str.exec(value)){
alert(inputDesc + "只能包含数字,字母和\"|\"!");
obj.focus();
return false;
}
if(value.length > maxLength){
alert(inputDesc + "长度不能超过" + maxLength + "个字符!");
obj.focus();
return false;
}
return true;
}

 
分享到:
评论

相关推荐

    js常用校验封装方法

    js常用校验封装方法,大家可参考应用,主要方法有 必添选项验证、Email验证、MM/DD/YYYYY日期格式验证、网址验证、金额校验、身份证号码验证、英文大写字母验证、邮政编码格式验证、电话号码格式验证、包含手机的...

    Validator表单验证封装

    Validator是基于JavaScript技术的伪静态类和对象的自定义属性,可以对网页中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单,熟悉接口之后也可以对特定的表单项甚至仅仅是某个字符串进行验证。...

    js封装表单输入数据的验证 V1.0

    在初始的版本上加入新的验证功能。【初始版本:https://download.csdn.net/download/qq_38313548/10865693 】 该版本新增特殊的密码验证和再次输入的密码验证。验证密码必须由字母数组和特殊字符组成。当前版本为:V...

    js Map对象封装

    js Map对象封装 和 java 的使用方法一样.

    Ajax 动态表单验证封装类附示例

    Ajax 动态表单验证封装类附示例。。。。。。。。。。。。。Ajax 动态表单验证封装类附示例

    JS的DLL封装及调用

    将JS脚本封装到DLL中,然后在前台调用。这样做的好处,即可以提高代码的可重用性,又可以提高代码的安全性,防止他人恶意修改。

    js验证大全 javascript

    js 常用验证 验证脚本集合 和常用函数的封装

    c#基类 常用数据验证的封装,数字,字符,邮箱的验证

    c#基类 常用数据验证的封装,数字,字符,邮箱的验证 * 备注信息: 上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起 * 主要研究erp,cms,crm,b2b,oa等系统和网站的开发,欢迎有共同...

    javascript 消息提示封装文件

    js 前端消息提醒封装文件

    sqlite js封装的api

    uniapp sqlite js封装的api

    JavaScript学习笔记_js常用函数封装_js包.zip

    JavaScript学习笔记_js常用函数封装_js包 gulp scss 模块化开发 github常用命令

    javascript中如何实现封装,继承和多态

    javascript中如何实现封装,继承和多态

    PHP APP开发 token 生成与验证封装类

    PHP 在做APP后台时用到的TOKEN验证功能,现已封装成类,使用很方便,有完整的生成与验证机制,可控制TOKEN过期时间,生成端经过加密处理生成的TOKEN字符,验证端解密后再验证TOKEN真正的TOKEN也是经过加密验证的,二...

    js分页控件--js封装的分页控件

    自己写的一个js分页控件.已经封装,可以直接使用. 适合各种用途的分页控制. 如果界面不够美观,只需要修改css即可.

    国内外 JavaScript 经典封装

    JavaScript经典封装,国内外 JavaScript 经典封装

    表单验证 正则 函数封装

    表单验证 正则 函数封装 不会用的和本人联系

    js添加水印封装方法

    js添加水印封装方法

    JavaScript的json封装

    因项目需求,自己拼接麻烦,所以将javascript拼接json封装成和java类似的操作,直接put() 与 get() 就可以使用,支持json数组,使用的时候只需要 创建对象 并赋值 然后调用内部参数即可,源码中有示例。因为删除操作...

    自己封装的验证控件

    使用VS2005的UserControl封装的一个验证控件,基本功能: 非空验证、比较验证、范围验证、正则表达式验证。 可实现基本的验证功能。

Global site tag (gtag.js) - Google Analytics