• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >正则表达式 > 最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等

最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等

作者:Xiaoming's Blog 字体:[增加 减小] 来源:互联网 时间:2017-07-23

Xiaoming's Blog通过本文主要向大家介绍了正则表达式,js正则表达式,正则表达式-语法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

什么是 RegExp?

  • RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配。

  • 通常用于格式验证、正则替换、查找子串等

  • 各种编程语言的正则表达式基本相同,不同的语言可能会有一些细小的差别

  • RegExp入门:http://www.w3school.com.cn/js/js_obj_regexp.asp

  • 完整的 RegExp 对象参考手册:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

  • PHP 正则表达式:http://www.imooc.com/learn/350

  • javascript 正则表达式:http://www.imooc.com/learn/706

  • Python 正则表达式:http://www.imooc.com/learn/550

RegExp 语法

// 直接实例化
var reg = new RegExp(pattern [, flags]);

// 隐式创建(推荐)
var reg = /pattern/flags;

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 [, flags] 是一个可选的字符串,包含属性 “g”(global )、”i” (ignoreCase)和 “m”(multiline)。

ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

概念:子表达式

在正则表达式中,使用括号括起来的内容是一个子表达式,子表达式匹配到的内容会被系统捕获至缓冲区,使用\n(n:数字)来反向引用系统的第n号缓冲区的内容。

场景:后面的内容要求与前面的一致,可以使用子表达式

// 查找连续相同的四个数字
var str = "1212ab45677778cd";
var reg = /(\d)\1\1\1/gi;
console.log(str.match(reg));
// OUTPUT:7777

概念:方括号(字符簇)

var str = "Is this all there is?";
var patt1 = /[a-h]/g;
document.write(str.match(patt1));
// OUTPUT:h,a,h,e,e
方括号 作用
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。同 \d
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[0-9a-zA-Z] 查找0-9,a-z,A-Z

概念:元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符 作用
\ 转义符 (、)、/、\
| 选择匹配符,可以匹配多个规则
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。字符 ( 字母 ,数字,下划线_ )
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。空格
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

概念:量词

量词 作用
n+ 匹配任何包含至少一个 n 的字符串。同 {1,}
n* 匹配任何包含零个或多个 n 的字符串。同 {0,}
n? 匹配任何包含零个或一个 n 的字符串。同 {0,1}
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。注意 /[^a] / 和 /^ [a]/是不一样的,前者是排除的,后者是代表首位。
(?=n) 匹配任何其后紧接指定字符串 n 的字符串。正向预查
(?!n) 匹配任何其后没有紧接指定字符串 n 的字符串。反向预查

RegExp 对象方法

test()

test() 方法检索字符串中是否存在指定的值。返回值是 true 或 false。

var patt1 = new RegExp('e');
console.log(patt1.test('some text'));
// OUTPUT:true

var patt2 = new RegExp('ee');
console.log(patt2.test('some text'));
// OUTPUT:false
// 判断是不是QQ号
// 1 首位不能是0  ^[1-9]
// 2 必须是 [5, 11] 位的数字 \d{4, 9}

var str = '80583600';
var regexp = /^[1-9][0-9]{4,10}$/gim;
if (regexp.test(str)) {
    alert('is');
} else {
    alert('no');
}

exec()

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

var patt1 = new RegExp('e');
console.log(patt1.exec('some text'));
// OUTPUT:e

var patt2 = new RegExp('ee');
console.log(patt2.exec('some text'));
// OUTPUT:null

compile()

compile() 既可以改变检索模式,也可以添加或删除第二个参数。

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free")); // true

// 改变了检索模式
patt1.compile("eee");
document.write(patt1.test("The best things in life are free")); // false

支持正则表达式的 String 对象的方法

search 检索与正则表达式相匹配的值。

var str = "Visit W3School!"
console.log(str.search(/W3School/))
// OUTPUT:6

match 找到一个或多个正则表达式的匹配。

var str="1 plus 2 equal 3"
console.log(str.match(/\d+/g))
// OUTPUT:1,2,3

replace 替换与正则表达式匹配的子串。

var str = "Visit Microsoft!"
console.log(str.replace(/Microsoft/, "W3School"));
// OUTPUT:Visit W3School!
// 找重复项最多的字符个数

var str = 'g21ss4aeba_ersb43sgnnsssstht6sss60snnsj8resw0_ss';

// split : 将字符串转化为数组
// sort : 对数组排序,ASCII
// join : 将数组转化为字符串
var str_new = str.split('').sort().join('');
document.write(str + '<br>');
document.write(str.split('') + '<br>');
document.write(str.split('').sort() + '<br>');
document.wri



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
  • 正则表达式技术详解 Regular Expression
  • 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
  • 正则表达式之零宽断言实例详解【基于PHP】
  • 正则表达式中环视的简单应用示例【基于java】
  • 除捕获组的语法外,其它的(?...)语法都不是捕获组的验证
  • 正则表达式——详细讲解平衡组
  • 正则表达式的多行模式与单行模式图文分析
  • JavaScript的正则也有单行模式了
  • JS正则表达式一条龙讲解(从原理和语法到JS正则)

相关文章

  • 2017-05-11Java/Js下使用正则表达式匹配嵌套Html标签
  • 2017-05-11C#正则表达式之Regex类用法详解
  • 2017-05-11php 正则 不包含某字符串的正则表达式
  • 2018-11-02平时用的正则
  • 2017-05-11浅谈正则表达式 实例入门
  • 2017-05-11表单 数字字符验证正则
  • 2017-05-11Python中正则表达式match()、search()函数及match()和search()的区别详解
  • 2017-05-11JS正则表达式详解[收藏]
  • 2017-05-11如何实现正则表达式的JavaScript的代码高亮
  • 2017-05-11PHP正则表达式的逆向引用与子模式分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Js 小数验证函数代码(基于正则)
    • 正则表达式在网页处理中的应用四则
    • linux shell 正则表达式(BREs,EREs,PREs)差异比较
    • 学习正则!超基础简单例子
    • 编写采集规则的好帮手—RegexBuddy 下载,正则不再难
    • 详解表单验证正则表达式实例(推荐)
    • 正则表达式,只匹配一次下化线!
    • 正则匹配后面非指定字符的正则 原创
    • 在Asp中用“正则表达式对象”来校验数据的合法性
    • 正则获取图片地址 链接地址

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有