`
corejava2008
  • 浏览: 296624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery 版本的文本输入框检查器Input Check

阅读更多
原文地址:http://www.cnblogs.com/linzheng/archive/2010/10/17/1853574.html
很不错,收藏下

/**
* power by wooshoo copyright 2008-2009
* 程序名:JQuery 专用输入检查器
* 内容:专门针对input[text password hidden]以及textarea的用户输入进行检查
* 检查的范围包括:字符数、是否包含特殊字符、是否为整数、是否符合email格式、是否为电话号码、
* 是否为网站地址、是否为图片地址、是否为浮点小数、是否为人民币货币、是否为日期格式
* 是否为时间格式、是否为日期时间格式、是否为密码格式(仅包含大小写字母、数字及底划线)、
* 暂不可用:是否为非英数特殊字符格式(即仅为中文、日文、韩文等大字符语言)、是否包含html标签、是否包含UBB标签、
*
*/
(function($) { 
    var wshc = $.fn.check = function(){
    return wshc.fn.init(this);
}
DATETIME = {
    FULL: "full",
    SIMPLE: "simple",
    ENGLISH: "english",
    JAPANESE: "japanese",
   CHINESE: "chinese"
}
wshc.fn = {
    init: function(obj){
    wshc.fn.val = obj.val();
    return wshc.fn;
},
notNull: function(){
    if(this.val !== "" || this.val !== undefined){
    return true;
}
    error("您没有输入任何字符。");
    return false;
},
number: function(min,max){//检查字数是否超过限制
    if(this.val.length >= min && this.val.length <= max){
    return true;
}
    error("您输入的字符超过了"+min+"-"+max+"的限制。");
    return false;
},
specialChar: function(pat){//检查是否包含特殊字符
    //特殊字符包括:\ / @ # $ % ^ & * = < > \n \r
    //如果需要自定义,可以在参数中设定
    pat = pat || /[\\\/\@\#\$\%\^\&\*\=\<\>\n\r]+/;
    error("您输入的字符包含了一些特殊字符。");
    return mat(this.val,pat);
},
    isNum: function(len){//检查是否为数字
    if(!isNaN(this.val)){
    return true;
}
    error("您输入的不是数字。");
   return false;
},
    integer: function(){//检查是否为整数
    if(this.val == parseInt(this.val)){
    return true;
}
    error("您输入的不是整数。");
    return false;
},
    float: function(){//检查是否为小数
    if(this.isNum() && !this.integer()){
    return true;
}
    error("您输入的不是小数。");
    return false;
}, 
rmb: function(){//检查是否为货币(RMB标准格式为:0.00 or 10.00 除个位数外首位不为零)
    var pat = /^([1-9][0-9]+|[0-9])\.[0-9]{2}$/;
    error("您输入的不是人民币货币格式。");
    return mat(this.val,pat);
},
email: function(pat){//检查是否符合电子邮件格式
     pat = pat || /^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{0,4}$/;
    error("您输入的不是电子邮件格式。");
    return mat(this.val,pat);
},
http: function(pat){//检查是否为网站的地址(包含http)
     pat = pat || /^(http|HTTP):\/\/[^s]*/;
    error("您输入的不是通用网址格式。");
    return mat(this.val,pat);
},
url: function(pat){//检查是否为通信地址
    pat = pat || /^[a-zA-z]+:\/\/[^s]*/;
    error("您输入的不是通用通信协议格式。");
    return mat(this.val,pat);
},
image: function(pat){//检查是否为图片地址(jpg gif png bmp jpeg )
    pat = pat || /^(http|HTTP):\/\/[^s]*(jpg|JPG|png|PNG|gif|GIF|bmp|BMP|jpeg|JPEG)$/;
    error("您输入的不是网页允许的图片格式。");
    return mat(this.val,pat);
},
password: function(pat){
    pat = pat || /^\w*$/;
    error("您输入的不是密码格式。");
    return mat(this.val,pat);
},
tel: function(pat){
    pat = pat || /^\d{3}\-\d{8}$|^\d{4}\-\d{7}$/;
    error("您输入的不是中国地区的固定电话格式。");
   return mat(this.val,pat);
},
mobile: function(pat){
    pat = pat || /^1\d{10}$/;
    error("您输入的不是中国地区的移动电话格式。");
    return mat(this.val,pat);
},
datatime: function(){
    return DATETIME;
},
date: function(type){
    var pat;
    switch(type){
    case DATETIME.FULL:
    pat = /^(([1-9]\d{0,3}|0)\-\d{2}\-\d{2})|(([1-9]\d{0,3}|0)\.\d{2}\.\d{2})|(([1-9]\d{0,3}|0)\/\d{2}\/\d{2})$/;
    break;
    case DATETIME.SIMPLE:
    pat = /^(\d{2}\-\d{1,2}\-\d{1,2})|(\d{2}\.\d{1,2}\.\d{1,2})|(\d{2}\/\d{1,2}\/\d{1,2})$/;
    break;
    case DATETIME.ENGLISH:
    pat = /^\w* \d{1,2},(([1-9]\d{0,3}|0)| ([1-9]\d{0,3}|0))$/;
    break;
    case DATETIME.JAPANESE:
    pat = /^(([1-9]\d{0,3}|0)年\d{2}月\d{2}日)$/;
    break;
    case DATETIME.CHINESE:
    pat = /^(([1-9]\d{0,3}|0)年\d{2}月\d{2}日)$/;
    break;
}
    error("您输入的日期格式不正确。");
    return mat(this.val,pat);
},
time: function(type){
    var pat;
    switch(type){
    case DATETIME.FULL:
    pat = /^\d{2}:\d{2}:\d{2}$/;
    break;
   case DATETIME.SIMPLE:
    pat = /^\d{1,2}:\d{1,2}:\d{1,2}$/;
    break;
case DATETIME.ENGLISH:
    pat = /^\d{1,2}:\d{1,2}:\d{1,2}$/;
    break;
   case DATETIME.JAPANESE:
   pat = /^\d{1,2}時\d{1,2}分\d{1,2}秒$/;
   break;
   case DATETIME.CHINESE:
   pat = /^\d{1,2}时\d{1,2}分\d{1,2}秒$/;
   break;
}
    error("您输入的时间格式不正确。");
    return mat(this.val,pat);
}
}
var mat = function(val,pat){
    if (val.match(pat)) {
    return true;
    }
    return false;
}
var error = function(err){
    wshc.fn.error = err || "无格式错误。";
}
})(jQuery);
使用方法:
前提是,您已经导入了jQuery3.2的包了
JS:
<scrpit>
$(function(){
//检查字数是否超过限制
$(#"do_check").bind("click",function(){
alert($("#wooshoo_ipt").check().number());
alert($("#wooshoo_ipt").check().error);
});
});
</script>
HTML:
<body>
请输入:<input id="wooshoo_ipt" type="text" /><br/>
<a id="do_check">执行检查</a>
</body> 
分享到:
评论

相关推荐

    jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码

    `$("input:not(:last)")`选取除了最后一个`input`(即提交按钮)的所有`input`元素,并将其颜色设置为灰色,以区别于普通文本。 当用户名输入框(`input:first`)获得焦点时,我们检查其当前值是否与默认值相同。...

    jQuery验证框架内置验证方法validate

    具体而言,对于文本输入框(如`&lt;input type="text"&gt;`)、单选按钮、复选框以及下拉列表等表单控件,如果这些元素为空或者未被选中,那么验证将失败。 **应用场景**:假设有一个表单字段`&lt;input type="text" name=...

    Jquery实现打字小游戏

    function checkInput(input) { var targetText = '预设的文本'; if (input === targetText) { score++; $('#score').text('Score: ' + score); // 更新游戏状态,如清除输入框、加载新文本等 } else { $('#...

    jquery密码强度验证

    &lt;input type="password" id="password" /&gt; // jQuery代码 $(document).ready(function() { var passwordInput = $('#password'); // 检查6位密码 function check6CharPassword(password) { var regex = /^[a-z...

    jQuery插件集之(表单验证)各种input等验证+Demo

    例如,检查输入框非空: ```javascript $("#myForm").submit(function(event) { if ($("#username").val() === "") { event.preventDefault(); // 阻止表单提交 alert("用户名不能为空!"); } }); ``` ### 2. ...

    240多个jQuery UI插件

    - **Watermark Input**: 为输入框添加占位符文本。 - **jQuery Checkbox (checkboxes with images)**: 使用图片替代复选框。 - **jQuery Spin Button Control**: 实现数值增减控制。 - **jQuery Ajax Form ...

    240多个jQuery插件

    8. Ajax Username Check with jQuery:实时检查用户名可用性。 **表单选取框插件**: 1. jQuery Combobox:组合框插件,提供下拉列表和文本输入功能。 2. jQuery controlled dependent (or Cascading) Select List...

    jquery实现登录验证小工程

    2. **表单提示**:使用CSS和jQuery动态改变输入框的样式,以视觉方式提示用户输入的合法性。 3. **错误提示**:提供明确的错误信息,帮助用户理解并改正错误。 **七、安全注意事项** 1. **密码加密**:在服务器端...

    jQuery-ajax-用户名异步请求

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理以及Ajax交互。本主题聚焦于jQuery中的Ajax功能,特别是如何利用它进行异步用户名验证。Ajax,即Asynchronous JavaScript and ...

    Jquery实现问卷调查

    同时,为了处理多选题和单选题,我们需要提供能够输入多个选项的输入框,这可以通过在表单中动态生成`&lt;input type="checkbox"&gt;`或`&lt;input type="radio"&gt;`实现。 "表单拖动问卷"这一标签提示我们需要实现问卷问题的...

    jquery插件表

    - **Styling an input type file**:帮助开发者自定义文件上传输入框的外观。 - **Progress Bar Plugin**:在文件上传过程中显示进度条,提高用户感知。 ### 表单验证 - **jQuery Validation**:官方的验证插件,...

    jQuery常见的表单操作

    - `$("#text_id").val().split(",")` 可以将文本输入框的值按逗号分割,返回一个数组。 - `$("#text_id").focus(function() {...})` 和 `$("#text_id").blur(function() {...})` 分别用于在文本框获取焦点和失去...

    jquery实现勾选复选框触发事件给input赋值

    - **表单元素**: 使用了`&lt;input&gt;`标签来创建复选框和文本输入框。复选框的`type`属性设置为`checkbox`,而文本输入框则设置了`type="text"`。 - **自定义属性**: 通过`data-type`和`data-value`属性为复选框添加...

    js与jQuery表单验证实例

    例如,`$("#formId").submit()` 可以监听表单的提交事件,而`$("#inputId").val()`则能获取输入框的值。 jQuery Validate插件是jQuery的一个强大扩展,专门用于表单验证。它提供了丰富的验证规则和自定义消息功能,...

    使用jQuery封装的ajax实现登陆时用户名已存在的提示,注意没有连接数据库去做判断,重点只是实现无刷新的数据交换

    在本文中,我们将深入探讨如何使用jQuery的AJAX功能实现一个简单的登录系统,该系统能够实时检查用户名是否存在,而无需用户点击提交按钮或刷新整个页面。这种方法极大地提升了用户体验,因为用户可以即时得到反馈,...

Global site tag (gtag.js) - Google Analytics