正则表达式

原创 2016年08月30日 10:01:46
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
//^[a-zA-Z]{1} 表示第一个字符要求是字母。
//([a-zA-Z0-9]|[._]){4,19} 表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度为4到9位的字符串,
//它要求是由大小写字母、数字或者特殊字符集[._]组成。
var regLog = /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;

//校验普通电话、传真号码:可以“+”或数字开头,可含有“-” 和 “ ”
var regTel = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;

//校验纯中文字符
var regChina = /^[\u4E00-\u9FA5]+$/;

//正浮点数 
var regDou = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

//正整数和小数
var regNum = /^\d{1,}|\d{1,}\.\d{1,5}$/;
//邮箱	
//zhangshna.Mr@163.com	
//abc_Wang.dd@sian.com	
//abc_Wang.dd.cc@sian.com
var regEmail0 = /^(\w+)(\.\w+)*@(\w)+((\.\w+)+)$/;

//身份证号
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X  
var regIdCard = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

//密码--数字字母组合
var regPwd = /^([0-9a-zA-Z]){6,32}$/;
//秘法组合(二)
var regPwd0 = /^([0-9a-zA-Z\.\!\$\^\*\+\=\|\.\?\\\/\(\)\{\}\[\]\~\`\#\%\,\<\>\&\:\;\'\"@]){6,32}$/;

//验证码
var regYZ = /^(\w){4}|(\w){6}$/;

//银行卡	16位或19位
var regBankCard = /^(\d{16})|(\d{19})$/;

//手机电话
//中国电信手机号码开头数字 133、1349、153、180、181、189
//中国联通手机号码开头数字 130、131、132、145、155、156、185、186
//中国移动手机号码开头数字 1340-1348、135、136、137、138、139、147、150、151、152、157、158、159、182、183、184、187、188 
var regMobile = /^((13[\d])|(15[\d])|(18[0,5-9])|(14[5,7]))\d{8}$/; 

//RegExp 对象  test方法返回true或false
var regExpTel = new RegExp(regIdCard);
regExpTel.test("13581978748")





/**
 *正则表达式的重复类
 * {n}	匹配前一项n次
 * {n,}	匹配前一项至少n次,至多不限
 * {n,m}匹配前一项至少n次,至多m次
 *  ?	匹配前一项0次或1次,相当于{0,1}
 *  +	匹配前一项至少1次,相当于{1,}
 *  *	匹配前一项0次或多次,相当于{0,}
 * 
 * 选择符 |
 * 定位符
 * ^	匹配字符串的开头,如果在多行文本中搜索,则匹配第一行的开头
 * $	匹配字符串的结尾,如果实在多行文本中搜索,则匹配一行 的结尾
 * \b	匹配一个词的边界,也就是单词与空格间的位置。在英文中使用的比较多
 * \B	与\b相反,匹配一个非单词的边界
 * (?=p)正前向声明,要求接下来的字符与模式p匹配,但不包括匹配中的那些字符
 * (?!p)反向前声明,要求接下来的字符都不与模式p匹配
 * 
 * 标志
 * i	匹配时不区分大小写
 * g	匹配时执行全局匹配模式,即找出所有的匹配,而不是再找第一个匹配之后就停止匹配
 * m	匹配时执行多行匹配模式,及使用^匹配一行的开头和字符串的开头,使用$匹配一行的结尾或字符串的结尾
 * 
 * String对象中的正则表达式
 * match():搜索字符串,返回匹配的子字符串所组成的数组
 * replace(): 查找并替换字符串中的子字符
 * search(): 搜索子字符串,返回匹配的子字符串中的位置
 * split(): 将字符串分割成数组
 * 
 * 正则表达式对象
 * var regExpTel = new RegExp(pattern,attribute);
 * pattern : 即要匹配的正则表达式,(不需要使用"/")
 * attribute:  正则表达式的标志,也就是 i , g 或 m 
 * 方法:
 * exec(): 执行正则表达式的匹配,该方法返回一个数组,如果匹配不成功,返回null
 * test(): 测试正则表达式的匹配,该方法返回一个bool值,如果字符串中包含与正则表达式相配的文本,则返回true,否则返回false
 * toSource(): 返回RegExp对象的源代码,该方法不是所有浏览器支持的方法。
 * toString(): 将RegExp对象转换成字符串
 * 属性:
 * global: 用于表示正则表达式是否有g标志,该属性返回值为bool值
 */

版权声明:本文为博主原创文章,未经博主允许不得转载。

正则表达式之?、(?:pattern)、(?!pattern)、(?=pattern)理解及应用

今天朋友问我一个问题,是这样子的,通过正则表达式匹配html标签input包含hidden的字符串,具体如下: "" 匹配下来,应该输出: "" 读了这个问题之后,觉得挺简单的,直...
  • sunhuaer123
  • sunhuaer123
  • 2013年11月15日 19:09
  • 59727

正则表达式 "^+$"等符号意义

1、字符/: 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符’b’,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示匹配一个单词的分...
  • github_36362235
  • github_36362235
  • 2016年11月23日 11:31
  • 1820

正则表达式——入门

写程序7年,从我身边接触到的人来看,相当多的程序员把正则表达式看得很高深,甚至觉得是一道不可跨越的鸿沟。有此想法的原因很简单:只是因为你没有花上几个小时的时间去学习一下正则的基础。对,只需要几个小时,...
  • sq_zhuyi
  • sq_zhuyi
  • 2013年10月18日 10:29
  • 18572

最全正则表达式汇总—想要的都有了

正则式太难学,而且容易忘记 ,西西是看过很多次,都是一会就全部不记得了滴。很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一...
  • SH_King
  • SH_King
  • 2015年07月24日 14:01
  • 1390

正则表达式简介及在C++11中的简单使用

正则表达式简介及在C++11中的简单使用
  • fengbingchun
  • fengbingchun
  • 2017年02月02日 13:41
  • 7685

正则表达式常见例题

常见例题 例1:北美地区的电话号     编码方案:电话号码有一个3位数的区号和一位7位数的号码组成(这个7位数有分成  一个3位的局号和一个4位的路号,局号和路号之间使用连字符分隔) 每位电话号...
  • wenwen1538
  • wenwen1538
  • 2014年11月09日 15:23
  • 2372

正则表达式中的"^"这个符号的一些思考

在学习正则表达式的时候,一些常见的规则我们都不难理解,但是有 一个正则表达式中的特殊字符让我一直有点搞不懂,就是”^”这个字符,文档上给出了解释是匹配输入的开始,如果多行标示被设置成了true,同时会...
  • sufubo
  • sufubo
  • 2016年03月27日 11:03
  • 18923

正则表达式全解析+常用示例

在开始写这篇文章之前,我的心里还是纠结的。我在问自己要不要写这篇东西,关于相似的内容网上多如牛毛,而且还不乏珍品,况且,就算我写了也不一定能写的好。但是现在你既然看到了,那说明我还是写了出来。就算是对...
  • xuemoyao
  • xuemoyao
  • 2012年09月29日 18:40
  • 25677

正则表达式的四种功能

正则表达式主要是针对字符串进行操作,可以简化对字符串的复杂操作,其主要功能有匹配、切割、替换、获取。 一、匹配 检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如: Str...
  • tanpeng199134
  • tanpeng199134
  • 2016年09月18日 08:19
  • 1874

正则表达式中的逻辑运算符或(怎么用逻辑运算符或连接两个正则表达式)

今天使用正则表达式是遇到一个问题, 磨了半天, 发现犯了个低级错误, 因此记录下来加深印象 问题描述:  我需要把 ^drawable(-[a-zA-Z0-9]+)*$  和  ^mipmap(-[a...
  • voo00oov
  • voo00oov
  • 2015年07月20日 11:07
  • 9757
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)