当前位置:  编程技术>其它

js 常用正则表达式表单验证代码

    来源: 互联网  发布时间:2014-10-16

    本文导语:  正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一...

正则表达式使用详解

简介

简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:
测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

基本语法

在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。

正则表达式的形式一般如下:

/love/其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
较为常用的元字符包括: “+”, “*”,以及 “?”。
“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。
“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

下面,就让我们来看一下正则表达式元字符的具体应用。

/fo+/因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
/eg*/因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
/Wil?/因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者“Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配 n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n ]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用

提取信息中的ip地址:
(d+).(d+).(d+).(d+)

提取信息中的中国手机号码:
(86)*0*13d{9}

提取信息中的中国固定电话号码:
((d{3,4})|d{3,4}-|s)?d{8}

提取信息中的中国电话号码(包括移动和固定电话):
((d{3,4})|d{3,4}-|s)?d{7,14}

提取信息中的中国邮政编码:
[1-9]{1}(d+){5}

提取信息中的中国身份证号码:
d{18}|d{15}

提取信息中的整数:
d+

提取信息中的浮点数(即小数):
(-?d*).?d+

提取信息中的任何数字 :
(-?d*)(.d+)?

提取信息中的中文字符串:
[u4e00-u9fa5]*

提取信息中的双字节字符串 (汉字):
[^x00-xff]*

提取信息中的英文字符串:
w*
提取信息中的网络链接:
(h|H)(r|R)(e|E)(f|F) *= *('|")?(w|\|/|.)+('|"| *|>)?

提取信息中的邮件地址:
w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

提取信息中的图片链接:
(s|S)(r|R)(c|C) *= *('|")?(w|\|/|.)+('|"| *|>)?


匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式



////////////////////前4行程序用于保护js代码不被下载
// ////////////////////基本正则表达式///////////////////
//非空验证 function NotNull (str) { return (str!=""); }
//邮件地址验证
function checkEmail (str) {
//邮件地址正则表达式 isEmail1=/^w+([.-]w+)*@w+([.-]w+)*.w+$/;
//邮件地址正则表达式 isEmail2=/^.*@[^_]*$/;
//验证邮件地址,返回结果 return (isEmail1.test(str)&&isEmail2.test(str));
} //身份证验证 function checkIDCard (str) {
//身份证正则表达式(15位)
isIDCard1=/^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$/;
//身份证正则表达式(18位) isIDCard2=/^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$/;
//验证身份证,返回结果 return (isIDCard1.test(str)||isIDCard2.test(str)); }
//IP验证 function checkIP (str)
{ //IP正则表达式 IP='(25[0-5]|2[0-4]\d|1\d\d|\d\d|\d)';
IPdot=IP+'\.'; isIPaddress=new RegExp('^'+IPdot+IPdot+IPdot+IP+'$');
//验证IP,返回结果 return (isIPaddress.test(str)); }
//主页(网址)验证 function checkHomepage (str) {
//主页正则表达式 //isHomepage=/^w+([.-]w)*$/; isHomepage=/^w+(.w+)+.w+$/;
//验证主页,返回结果 return (isHomepage.test(str)); }
//是否数字 function isNum (str) { //isNumber=/^([1-9]d*(.d+)?)|(d+(.d+))$/; isNumber=/^d+(.d+)?$/;
//验证并返回结果 return (isNumber.test(str)); }
//是否整数 function isInt (str) { isInteger=/^d+$/;
//验证并返回结果 return (isInteger.test(str)); }
//是否字母 function isChar (str) { isCharacter=/^[A-Za-z]+$/;
//验证并返回结果 return (isCharacter.test(str)); }
/////////////////////基本弹出窗口///////////////////
function checkBoolean(bv,i,w) { if(bv==false) { try{i.focus();}catch(e){} alert(w); return false; } return true }
////////////////////元素和取值判断//////////////////// //
已选择 function checkElement_selected(item,alert_str) { if(item.type=="select-one")return checkElement_NotNull(item,alert_str); if(alert_str.length==0)alert_str=item.title+"为必选项!"; rt=false; if(item.length>0) { for(i=0;i


    
 
 

您可能感兴趣的文章:

  • 常用正则 常用的C#正则表达式
  • 常用正则表达式及评注-学习正则必备
  • asp.net 常用正则表达式(17个)
  • Python常用正则表达式符号浅析
  • 常用的正则表达式集锦
  • 常用正则表达式 比较实用
  • JavaScript常用的正则表达式表单验证代码
  • php下常用表单验证的正则表达式
  • PHP和javascript常用正则表达式及用法实例
  • asp.net常用正则表达式
  • JS的正则表达式常用检测代码
  • 收集的ASP.NET中常用正则表达式
  • [PHP]常用正则表达式收集
  • 修改月光博客网站中PHP常用正则表达式中出现的错误
  • JQuery数字类型验证常用正则表达式
  • C#常用正则大全分享
  • ASP 正则表达式常用的几种方法(execute、test、replace)
  • 常用的JQuery数字类型验证正则表达式整理
  • 常用正则表达式范例 方便表单验证
  • python 正则式 概述及常用字符
  • PHP中过滤常用标签的正则表达式
  • asp.net 正则表达式[经常用的到]
  • 比较不错的C#中的常用的正则表达式
  • php中常用的正则表达式的介绍及应用实例代码
  • PHP 正则表达式常用函数
  • asp常用的正则表达式实现字符串的替换
  • 常用正则表达式语法例句
  • asp.net 常用正则表达式与验证类
  • js 验证 常用正则表达式集锦
  • PHP常用正则表达式集锦
  • 收集的一些常用java正则表达式
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP防止表单重复提交的几种常用方法汇总
  • jquery表单提交数据常用代码
  • 表单验证常用正则(强烈推荐大家收藏下)
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 求常用操作常用命令
  • redhat/centos 常用信息查看命令整理
  • 100分求:linux常用命令和C语言常用函数帮助文档
  • 二叉树常用算法(求总节点个数和叶子节点个数)
  • 调查:兄弟们,你们常用linux开发什么软件?哪类软件?常用什么开发工具?
  • Windows7 常用使用技巧
  • 常用的C语言算法库 libcstl
  • c/c++ 常用转义字符
  • 最常用的Linux/Unix系统版本是什么版本啊?
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • linux 内核空间如何获取当前时间(常用格式)
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 高分求常用linux或者unix指令
  • ORACLE数据库常用字段数据类型介绍
  • 我要装个Linux想在该系统下做C++开发,我想和道常用的是那个版本的系统??
  • ftp协议介绍及ftp常用的上传下载等操作命令使用方法
  • 常用数据结构库 sundial
  • mongodb 数据库常用命令使用实例
  • C++常用类库 fcppt
  • Docker 基础用法和常用命令及选项介绍
  • C语言常用工具包 libscl


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3