正则表达式(一)
前言正则表达式在编码中会经常使用到,但是平时只是需要的时候就去看看。往往看到那些元字符、量词就直接跳过,直接百度了,一直没有很深入的去了解,现在有时间就简单总结一下。 基本概念正则表达式是一种文本模式,包括 正则使用场景: 1. 检查文本中是否含有指定的特征词 2. 找出文中匹配特征词的位置 3. 从文本中提取信息,比如:字符串的子串 4. 修改文本 元字符元字符是在正则表达式中你有特殊含义的非字母字符。元字符必须转义
修饰符
字符类匹配
重复字符匹配
字符类:锚字符 匹配
字符类:记录字符 匹配
正则表达式修饰符字符 含义 i 执行不区分大小写的匹配 g 执行一个全局匹配,即找到所有匹配而非一次匹配 m 多行匹配模式,^匹配一行的开头和字符串开头,$匹配行的结束和字符串的结尾 构造方式1.字面量 var pattern = /bisb/g;
2.构造函数 var pattern = new RegExp('bisb','g'); new RegExp("正则表格式字符串",正则表达式修饰符); 注意??: 因为构造函数中使用的是字符串,由于字符串转义问题,""代表""。 RegExp对象方法RegExp对象给我们提供了三种方法供我们使用,分别是test()、exec()和compile()。下面具体说一下这三个方法的用处。 1.test() 检索字符串中指定的值。返回 true 或 false。这个是我们平时最常用的方法。 var reg=/hello w{3,12}/; alert(reg.test('hello js'));//false alert(reg.test('hello javascript'));//true 2.exec() 检索字符串中指定的值。匹配成功返回一个数组,匹配失败返回null。 var reg=/hello/; console.log(reg.exec('hellojs'));//['hello'] console.log(reg.exec('javascript'));//null 3.compile() compile() 方法用于改变 RegExp。 var reg=/hello/; console.log(reg.exec('hellojs'));//['hello'] reg.compile('Hello'); console.log(reg.exec('hellojs'));//null reg.compile('Hello','i'); console.log(reg.exec('hellojs'));//['hello'] 举几个例子1.匹配下面的电话号码: 1. (010)88886666 2. 022-22334455 3. 02912345678 /(?0d{2}[)-]?d{8}/; 验证如下 var regex = /(?0d{2}[)-]?d{8}/; regex.test(" 02912345678") regex.test(" 022-22334455") regex.test("(010)88886666") true 2.匹配ip地址
将这三种情况合并可以表示 整个ip的正则可以表示为 var regex = /((25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(25[0-5]|2[0-4]d|((1d{2})|([1-9]?d)))/; regex.test("3424.2.3.2"); true 所以还要对正则的启始位置进行限制 var regex = /^((25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(25[0-5]|2[0-4]d|((1d{2})|([1-9]?d)))$/; regex.test("3424.2.3.2"); false 第一部分简单回顾了正则表达式的基础知识,下一部分重点介绍正则的分组语法 和 常用方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |