JS表单验证-12个常用的JS表单验证

0 个评论
最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度限制</p> <form name=a onsubmit="return test()"> <textarea name="b" cols="40" rows="6" placeholder="不能超过50个字符!"></textarea> <br /> <input type="submit" name="Submit" value="check"> </form> <script language="javascript"> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } </script> 2. 只能是汉字 <p>2. 只能是汉字 </p> <input type="text" onblur="isChinese(this.value)" placeholder="请输入中文!" /> <script language="javascript"> function isChinese(obj){ var reg=/^[\u0391-\uFFE5]+$/; if(obj!=""&&!reg.test(obj)){ alert('必须输入中文!'); return false; } } </script> 以下demo中的HTML的结构与验证中文结构相似的,小编就只写js啦~~~ 3. 只能是英文字母 <script type="text/javascript"> //验证只能是字母 function checkZm(zm){ var zmReg=/^[a-zA-Z]*$/; if(zm!=""&&!zmReg.test(zm)){ alert("只能是英文字母!"); return false; } } </script> 4. 只能是数字 <script language=javascript> //验证只能为数字 function checkNumber(obj){ var reg = /^[0-9]+$/; if(obj!=""&&!reg.test(obj)){ alert('只能输入数字!'); return false; } } </script> 5. 只能是英文字母和数字 <script type="text/javascript"> //验证只能是字母和数字 function checkZmOrNum(zmnum){ var zmnumReg=/^[0-9a-zA-Z]*$/; if(zmnum!=""&&!zmnumReg.test(zmnum)){ alert("只能输入是字母或者数字,请重新输入"); return false; } } </script> 6. 检验时间大小(与当前时间比较) <script type="text/javascript"> //检验时间大小(与当前时间比较) function checkDate(obj){ var obj_value=obj.replace(/-/g,"/");//替换字符,变成标准格式(检验格式为:'2009-12-10') // var obj_value=obj.replace("-","/");//替换字符,变成标准格式(检验格式为:'2010-12-10 11:12') var date1=new Date(Date.parse(obj_value)); var date2=new Date();//取今天的日期 if(date1>date2){ alert("不能大于当前时间!"); return false; } } </script> 7. 屏蔽关键字(这里屏蔽***和****) <script type="text/javascript"> function test(obj) { if((obj.indexOf ("***") == 0)||(obj.indexOf ("****") == 0)){ alert("屏蔽关键字(这里屏蔽***和****)!"); return false;} } </script> 8. 两次输入密码是否相同 <script type="text/javascript"> function check(){ with(document.all){ if(input1.value!=input2.value) { alert("密码不一致") input1.value = ""; input2.value = ""; } else { alert("密码一致"); document.forms[0].submit(); } } } </script> 9. 表单项不能为空 <script language="javascript"> function CheckForm(obj) { if (obj.length == 0) { alert("姓名不能为空!"); return false; } return true; alert("姓名不能为空!"); } </script> 10. 邮箱验证 <script language="javascript"> function test(obj){ //对电子邮件的验证 var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if(!myreg.test(obj)) { alert('请输入有效的邮箱!'); return false; } } </script> 11. 验证手机号 <script type="text/javascript"> function validatemobile(mobile) { if(mobile.length==0) { alert('手机号码不能为空!'); return false; } if(mobile.length!=11) { alert('请输入有效的手机号码,需是11位!'); return false; } var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if(!myreg.test(mobile)) { alert('请输入有效的手机号码!'); return false; } } </script> 12. 验证身份证号码(需是有效身份证) <script type="text/javascript"> // 构造函数,变量为15位或者18位的身份证号码 function clsIDCard(CardNo) { this.Valid=false; this.ID15=''; this.ID18=''; this.Local=''; if(CardNo!=null)this.SetCardNo(CardNo); } // 设置身份证号码,15位或者18位 clsIDCard.prototype.SetCardNo = function(CardNo) { this.ID15=''; this.ID18=''; this.Local=''; CardNo=CardNo.replace(" ",""); var strCardNo; if(CardNo.length==18) { pattern= /^\d{17}(\d|x|X)$/; if (pattern.exec(CardNo)==null)return; strCardNo=CardNo.toUpperCase(); } else { pattern= /^\d{15}$/; if (pattern.exec(CardNo)==null)return; strCardNo=CardNo.substr(0,6)+'19'+CardNo.substr(6,9) strCardNo+=this.GetVCode(strCardNo); } this.Valid=this.CheckValid(strCardNo); } // 校验身份证有效性 clsIDCard.prototype.IsValid = function() { return this.Valid; } // 返回生日字符串,格式如下,1981-10-10 clsIDCard.prototype.GetBirthDate = function() { var BirthDate=''; if(this.Valid)BirthDate=this.GetBirthYear()+'-'+this.GetBirthMonth()+'-'+this.GetBirthDay(); return BirthDate; } // 返回生日中的年,格式如下,1981 clsIDCard.prototype.GetBirthYear = function() { var BirthYear=''; if(this.Valid)BirthYear=this.ID18.substr(6,4); return BirthYear; } // 返回生日中的月,格式如下,10 clsIDCard.prototype.GetBirthMonth = function() { var BirthMonth=''; if(this.Valid)BirthMonth=this.ID18.substr(10,2); if(BirthMonth.charAt(0)=='0')BirthMonth=BirthMonth.charAt(1); return BirthMonth; } // 返回生日中的日,格式如下,10 clsIDCard.prototype.GetBirthDay = function() { var BirthDay=''; if(this.Valid)BirthDay=this.ID18.substr(12,2); return BirthDay; } // 返回性别,1:男,0:女 clsIDCard.prototype.GetSex = function() { var Sex=''; if(this.Valid)Sex=this.ID18.charAt(16)%2; return Sex; } // 返回15位身份证号码 clsIDCard.prototype.Get15 = function() { var ID15=''; if(this.Valid)ID15=this.ID15; return ID15; } // 返回18位身份证号码 clsIDCard.prototype.Get18 = function() { var ID18=''; if(this.Valid)ID18=this.ID18; return ID18; } // 返回所在省,例如:上海市、浙江省 clsIDCard.prototype.GetLocal = function() { var Local=''; if(this.Valid)Local=this.Local; return Local; } clsIDCard.prototype.GetVCode = function(CardNo17) { var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2'); var cardNoSum = 0; for (var i=0; i<CardNo17.length; i++)cardNoSum+=CardNo17.charAt(i)*Wi[i]; var seq = cardNoSum%11; return Ai[seq]; } clsIDCard.prototype.CheckValid = function(CardNo18) { if(this.GetVCode(CardNo18.substr(0,17))!=CardNo18.charAt(17))return false; if(!this.IsDate(CardNo18.substr(6,8)))return false; var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}; if(aCity[parseInt(CardNo18.substr(0,2))]==null)return false; this.ID18=CardNo18; this.ID15=CardNo18.substr(0,6)+CardNo18.substr(8,9); this.Local=aCity[parseInt(CardNo18.substr(0,2))]; return true; } clsIDCard.prototype.IsDate = function(strDate) { var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/); if(r==null)return false; var d= new Date(r[1], r[2]-1, r[3]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[2]&&d.getDate()==r[3]); } function valiIdCard(idCard){ var checkFlag = new clsIDCard(idCard); if (!checkFlag.IsValid()) { alert("输入的身份证号无效,请输入真实的身份证号!"); document.getElementByIdx("idCard").focus(); return false; }else{ alert("是有效身份证!"); } } </script> https://www.cnblogs.com/yangmengsheng/p/5973586.html
2022-02-07 / 网站制作技术 / 567 views浏览
阅读全文

C# 文件重命名、文件夹重命名方法

0 个评论
C# 文件重命名、文件夹重命名方法,C#编程语言中没有 Rename 这样对文件或文件夹的重命名方法,但我们可以用文件或文件夹实体类的 Move 方法来操作。 Directory.Move(sourceDriName, destDriName);//文件夹 File.Move(sourceFileName, destFileName);//文件 https://jingyan.baidu.com/article/4b07be3cfc7ab348b280f311.html
2022-02-07 / C# / 939 views浏览
阅读全文

C#判断文件和文件夹是否存在 不存在则创建

0 个评论
using System.IO; string path = @"D:\accountDaoRu\"; if (Directory.Exists(path) == false) { Directory.CreateDirectory(path); } if (Directory.Exists(Server.MapPath(~/upimg/hufu)) == false)//如果不存在就创建file文件夹{ Directory.CreateDirectory(Server.MapPath(~/upimg/hufu));} //Directory.Delete(Server.MapPath(~/upimg/hufu), true);//删除文件夹以及文件夹中的子目录,文件 //判断文件的存在 if (File.Exists(Server.MapPath(~/upimg/Data.html))){ Response.Write(Yes);//存在文件}else{ Response.Write(No); //不存在文件 File.Create(MapPath(~/upimg/Data.html));//创建该文件} string name = GetFiles.FileName;//获取已上传文件的名字 string size = GetFiles.PostedFile.ContentLength.ToString();//获取已上传文件的大小 string type = GetFiles.PostedFile.ContentType;//获取已上传文件的MIME string postfix = name.Substring(name.LastIndexOf(.) + 1);//获取已上传文件的后缀 string ipath = Server.MapPath(upimg) +\\+ name;//获取文件的实际路径 string fpath = Server.MapPath(upfile) + \\ + name; string dpath = upimg\\ + name;//判断写入数据库的虚拟路径 ShowPic.Visible = true;//激活 ShowText.Visible = true;//激活 //判断文件格式 if (name == ) { Response.Write(<scriptalert('上传文件不能为空')</script);}else{ if (postfix == jpg || postfix == gif || postfix == bmp || postfix == png){ GetFiles.SaveAs(ipath); ShowPic.ImageUrl = dpath; ShowText.Text = 你上传的图片名称是: + name + + 文件大小: + size + KB + + 文件类型: + type + + 存放的实际路径为: + ipath;}else{ ShowPic.Visible = false;//隐藏图片 GetFiles.SaveAs(fpath);//由于不是图片文件,因此转存在upfile这个文件夹 ShowText.Text = 你上传的文件名称是: + name + + 文件大小: + size + KB + + 文件类型: + type + + 存放的实际路径为: + fpath;} https://www.cnblogs.com/yubufan/p/3863924.html
2022-02-07 / C# / 481 views浏览
阅读全文

C# 如何把 图处理成 反相

0 个评论
private void fx(Bitmap g) { for(int i=0;i<g.Width;i++) for (int j = 0; j < g.Height; j++) { Color c = g.GetPixel(i, j); Color cc=Color.FromArgb(255-c.R,255-c.G,255-c.B); g.SetPixel(i,j,cc); } } https://bbs.csdn.net/topics/240074740?list=30132
2022-02-07 / C# / 462 views浏览
阅读全文

C# 字符串只保留字母和数字

0 个评论
public static string GetNumberAlpha(string source) { string pattern = "[A-Za-z0-9]"; string strRet = ""; MatchCollection results = Regex.Matches(source, pattern); foreach (var v in results) { strRet += v.ToString(); } return strRet; } https://blog.csdn.net/qq_38693757/article/details/112984003 //只保留字母、数字 和汉字 string strAfter= Regex.Replace(strBefor, @"[^a-zA-Z0-9\u4e00-\u9fa5\s]", ""); 正则表达式的前面一般都加@符号,@符号的作用是后面所跟字符串不进行转义,也就是后面跟的字符串是原封不动的 \s:匹配任何空白字符,相当于[ \f\n\r\t\v] \S:匹配任何非空白字符,相当于[^\s] //只保留字母、数字 和汉字、日文 string strAfter= Regex.Replace(strBefor, @"[^a-zA-Z0-9\u4e00-\u9fa5\u0800-\u4e00\s]", "");
2022-02-07 / C# / 447 views浏览
阅读全文

C# 中的 if…else if…else 语句的语法

0 个评论
一个 if 语句后可跟一个可选的 else if…else 语句,这可用于测试多种条件。 当使用 if…else if…else 语句时,以下几点需要注意: 一个 if 后可跟零个或一个 else,它必须在任何一个 else if 之后。 一个 if 后可跟零个或多个 else if,它们必须在 else 之前。 一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。 if(boolean_expression 1) { /* 当布尔表达式 1 为真时执行 */ } else if( boolean_expression 2) { /* 当布尔表达式 2 为真时执行 */ } else if( boolean_expression 3) { /* 当布尔表达式 3 为真时执行 */ } else { /* 当上面条件都不为真时执行 */ }
2022-02-07 / C# / 403 views浏览
阅读全文

想找个C#下能调用的文字识别软件

0 个评论
找到个Asprise OCR,搞了半天才明白怎么装,装好了识别了一个M,然后今天想再研究一下,结果弹窗口了,多谢我的测试,要我访问他的官网 我真实无语了 只好又找到了一个tesseract-ocr,明天有空再研究研究 最近要做文字识别,不让直接用别人的接口,所以只能尝试去用开源的类库。tesseract-ocr是惠普公司开源的一个文字识别项目,通过它可以快速搭建图文识别系统,帮助我们开发出能识别图片的ocr系统。因为Windows环境开发,我也就必须在windows环境安装系统。 第一步:下载安装包并安装 https://github.com/tesseract-ocr/tesseract 下载好安装,和一般的程序差不多,一步一步点NEXT,但是有一个问题,网上有教程说直接可以在安装的时候选语言库,实际上呵呵,只能手工下载 可以翻墙下或者把链接弄到迅雷里面下,我下了中文的可以用迅雷下的 语言库地址为:https://github.com/tesseract-ocr/tessdata 将所需要的语言库下载下来,放在F:\Program Files (x86)\Tesseract-OCR\tessdata目录下 第二步,配置系统变量 桌面上此电脑->右键属性->点击高级系统设置->在打开的系统属性界面->高级下面点击环境变量->在环境变量界面选择系统变量中选中path,然后点下面的编辑,打开编辑环境变量界面新建一个C:\Program Files (x86)\Tesseract-OCR的值(这个路径就是安装路径,可以根据自己安装位置修改),然后确定 系统变量下面新建一个TESSDATA_PREFIX变量名,路径就是安装文件夹下面的tessdata文件夹的路径地址,复制过来即可 然后 运行CMD命令 输入:tesseract -v,可以看到版本信息 输入:tesseract –list-langs来查看本地Tesseract-OCR支持语言库 不行的话重启一次看看 第三步,测试 在cmd窗口中执行 tesseract test.jpg test.txt -l chi_sim+eng(chi_sim是中文识别包,equ是数学公式包,eng是英文包),即可将图片中的文字识别出来,但是效果貌似很差~可以自己训练字库,比较麻烦就懒得弄了,因为目前我就需要弄英文的 参考这些文章 https://www.cnblogs.com/wangkevin5626/p/9640165.html https://www.cnblogs.com/jianqingwang/p/6978724.html https://blog.csdn.net/sizhi_xht/article/details/104795600
2022-02-03 / C# / 378 views浏览
阅读全文

单独配置Chrome快捷方式代理上网的方法(/proxy-server=socks5:)

0 个评论
我们使用Chrome代理上网时,一般都是打开Chrome设置-高级-代理设置-局域网设置-代理服务器。。。这样一设置的,全局都是代理了。如果只想chrome设置代理,就需要用下面的方法了。 Chrome使用独立全局代理。设置方法如下: 在桌面新建一个Chrome快捷方式,右键→属性→目标,如果是如果是: “C:\Program Files\chrome\chrome.exe” 则改为:“C:\Program Files\chrome\chrome.exe” /proxy-server=socks5://127.0.0.1:7070,就可以了,最好直接复制以免输错,如果手工输入,请注意”和/之间有半角空格 你打开这个快捷方式就是使用代理上网(注意:打开这个快捷方式之前必须关闭已经之前打开的Chrome)。如果你打开的是正常的Chrome桌面图标就是正常上网。
2022-01-22 / 生活 / 1,257 views浏览
阅读全文

家里的康宝电热器老是自动跳,然后不通电

0 个评论
然后我认为是里面的保险烧了,于是就自己拆下来看了一下,大概看了一下线路,好像是有一个像是保险一样的东西,中间有个凸起来的东西,然后我把它按下去就通电了 然后还是经常跳,要经常去按那个类似保险的东西,今天我拆下来看了一下,背后还涂有像是硅胶一样的东西,像是电脑CPU上面涂的导热硅胶,抹干净硅胶后,上面有个88度C温度的字样,我感觉这个像是温控的东西,上网搜了一下,还真的是温控器,或者叫做热敏开关,有常开和常闭两种类型,然后我看了一下参数,型号是ksd302x,20安250伏,88度 上网看了一下说明,15安16安一般用在1800~2,000瓦的机子上,20安一般用在2500瓦到3000瓦的机子上,30安是用在6千瓦左右的机子上,于是我上淘宝买了两个,花了20块钱,拿回来试一下 还有一个要注意的,我现在拆下来这个原装的是4个接线针脚的,网上很多都是两个针脚的,所以要辨别一下,看清楚最好是热水器专用 还有就是有些是手动复位,有些是自动复位,也就是当温度太高的时候,它会自动跳出来,跳了以后手动复位要自己拆开机子去按一下,自动复位就不用手工去按,所以不用拆机子
2022-01-20 / 生活 / 391 views浏览
阅读全文

今天去审车了

0 个评论
本来是网上约好了去一个叫我开源的地方,但是八点多钟我去那里的时候没找到地方,没办法,后来我只好去附近的曾经两年前去过的大修厂,当年找到保险认识的人去帮弄的,花了250,其实就是黄牛,今年问保险那边竟然涨价到了500,算了,我决定还是自己去试一下 网上预约的时候没有说要大本,结果一到那里有个接待阿姨就说要大本,之后又跑回家拿了 常规上线,结果到了环境检测那里,说什么odb异常,检测的阿姨说那个机子时好时坏,建议我到别的地方检测,检测不通过不收钱,于是我又问了开源的地址,旁边有个小哥告诉我了,说在二高附近,车站旁边,后面我在地图上搜索,终于搜索到了,不过在原来那个检测站已经耽误了两个钟头了,去到开源那里都已经10:30了 开原检测站这边很奇怪,要先交钱,交了155,然后签字填资料,先上环境检测线,一直听说这边的检测站都很黑,自己去都不过,果然第1次就说碳排放不合格,前台小妹还说要去什么二2类以上修理厂去开修理证明什么之类的,其实这种事情我们早就知道,不修肯定不给你过,还号称不指定修理厂,我直接问他是不是旁边的那个,他说那个是一类的,可以! 过去,问老板多少钱,一口价240,师傅掏出两瓶燃油宝,加进油箱,然后就开个修理证明,盖个章,但是时间已经到了12点,只能下午1:30左右才能重新检测了,下午上班再去前台小妹那里录入一下重新检测资料,然后上线重新检车,然后再到前台相关窗口去拿结果,神奇的一幕发生了,两瓶燃油宝就使排放合格了,唉,我只能无奈的呵呵两声了 然后再到下一个窗口去申请做安全检测,我自己开车到了安全检测入口那里,碰到一个和我一起去旁边修理厂修理的大哥,他们说刚进来检测的时候,穿反光衣的检测人员会问你要不要帮开车,380就能够过关,tnnd,接待我那个小弟怎么没有问我,如果问的话我早就给他弄了,浪费我一天的时间在那,看来下次要我问他才行,直接做甩手掌柜多好,唉,才第2次检车经验不够啊! 搞到下午4:00才检测完,单位还有一堆事情没处理,想想真是不值,总结,今年还是想办法换个车吧!6年免年检,不受这鸟气!!!
2022-01-12 / 生活 / 402 views浏览
阅读全文