正则表达式,你值得拥有!
2016-12-24 16:17
267 查看
正则表达式RegExp
第一种声明方法var reg=new RegExp("^[]$","ig")
第二种声明方法 var reg=/^[0-9]{6}$/i
Reg Exp(regular expression)对象表示正则表达,他是对字符串执行模式匹配的强大工具。
用正则表达式写出要求的字符串,再在目标字符串中进行检索比较,返回true或false或字符串或数组
定义一个正则表达式;
Var reg=new RegExp (正则表达式的模式pattern ,属性 )
属性:(可以不止用一个)
g (global)全局匹配,
I (ignore)忽略大小写的匹配;
M (multiline)多行匹配;文本框多行文字的时候使用
模式:
方法:test:用于检测字符串是否符合某个模式。
步骤:1.先有个字符串,var str=”hello world” str=”234234324”
2.定义正则对象,var reg=new RegExp(pattern,“g”) pattern是个字符串
3.用定义的正则对象去检测字符串,reg.test(str);返回值是true或false;
假设用户名只能是字母而不是数字,和特殊符号等
方括号:[ ] 表示一个范围,[a-z] [A-Z] [0-9]表示查找方括号之间的任何字符;
所以把[a-z] [A-Z]放到pattern的位置就好,写一块[a-zA-Z],
[^absa]:表示不是方括号里的字符。
注意双斜杠的写法和点的写法
var reg=/^(http:)["/"]{2}[a-zA-Z]*(\.)[a-zA-Z]+(\.com\.cn)$/ig;
量词:
+ :>=1
*: >=0
?: 0或者1
N{4}:大括号里的个数是指有4个n,
N{4,}:表示至少4个n,
N{4,10}:表示n的个数大于等于4小于等于10.
//验证qq号登陆 必须是纯数字 长度是6-11位
var qqnum="1243432";
var reg=new RegExp("^[1-9][0-9]{5,10}$")
^w[a-z]*rd 开头是w,中间有0个字母或者1个字母
开头和结尾的符号:
^:开头 ^[a-z] 表示开头必须是小写字母 ^n 匹配开头是n的字符
$:结尾 ^[a-z]$ 表示开头和结尾必须是小写字母 n$匹配结尾是n的字符
.在正则中表示任意字符,要使用得先转意,方法: (\.)
元字符
\W :word 查找单词字符 主要就是字母数字下划线,也就是\w=[0-9a-zA-Z_]
\d :digit 同 [0-9]是纯数字。
\s: space 匹配空格, 配合replace可以用来把拿到的字符串前边和后边的空格都去掉(比如说密码或用户名这些东西,)
var str=" sfrew wef wee rg hgth rhw "
str=str.replace(/\s+/
4000
g,"");
alert(str);
\b:边界,匹配单词的开始和结束 \b word\b word的前后都没有东西的时候能检索到。
方法:exec:用于检测字符串是否符合某个模式,返回符合规则的字符串,如果有多个符合规则就返回数组。
返回的结果中包含index :第一次检索到符合规则的单词出现的位置,
Input:要检测的字符串,length:数组的长度;
var str="java is important"
var reg=/\bjava\b/;
alert(reg.exec(str))
exec():
一、(没有while循环,只能进行第一个匹配,匹配完成后如果有小括号就继续匹配他的子表达式)
找到字符串中的第一个匹配的对象就结束了,如果在正则中添加(),而且有可能多个(1,2,3,4个),每个(就称作子表达式)
步骤:
1. 默认第一次匹配正则,如果能找到就算是找到结果,结束匹配过程,这是对于没有()的,
2. 对于有()的还没有结束,系统将小括号里的内容当成是他的子表达式,所以,返回的数组中包含要检索的字符串本身和他的子表达式
3.
例:要检索的内容是(abc)(bc),在第一次匹配的时候不用考虑括号,就直接检索abcbc,找到之后因为有子表达式,所以再进行下次检索,得到abc和bc所以数组中的内容就是[abcbc,abc,bc]
二、(配合while循环进行全局匹配,如果正则中有小括号,用法同第一)
默认只匹配第一个,之后就不在往后匹配了,如果要匹配所有的对象,那就正则表达式必须是全局的也就是g,检索完之后还可以向后执行,只要执行完毕之后都是从当前位置向后继续执行,因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。Exec返回结果是个数组,但是不能知道数组里有几个元素,要拿到整个数组就要用while循环,匹配到一个就添加到数组中(在一开始先声明一个空的数组)。并且能够返回每个元素的位置,
字符串对象和正则的搭配
以上的过程是正则调字符串,也就是reg.exec(str)
使用字符串中的match可以省去上面的循环,是字符串调正则,str.match(reg)返回结果也是数组。
Replace:replace(reg,””) 用逗号后边的替换逗号前边的内容,
Var str=”aaabbcccdddd”;要求结果abcd,把重复的只留一个。
Var reg=/\w+/;
Str.replace(reg,”$&”); $& 把叠词用他自己(也就是正则匹配的文本)去替换,$`:表示的是正则匹配文本左侧的文本,$’ 表示的是正则匹配文本右侧的文本
Search()类似indexof,
* 贪婪匹配: http://www.nowamagic.net/librarys/veda/detail/1037
* 懒惰匹配: http://www.nowamagic.net/librarys/veda/detail/1038
第一种声明方法var reg=new RegExp("^[]$","ig")
第二种声明方法 var reg=/^[0-9]{6}$/i
Reg Exp(regular expression)对象表示正则表达,他是对字符串执行模式匹配的强大工具。
用正则表达式写出要求的字符串,再在目标字符串中进行检索比较,返回true或false或字符串或数组
定义一个正则表达式;
Var reg=new RegExp (正则表达式的模式pattern ,属性 )
属性:(可以不止用一个)
g (global)全局匹配,
I (ignore)忽略大小写的匹配;
M (multiline)多行匹配;文本框多行文字的时候使用
模式:
方法:test:用于检测字符串是否符合某个模式。
步骤:1.先有个字符串,var str=”hello world” str=”234234324”
2.定义正则对象,var reg=new RegExp(pattern,“g”) pattern是个字符串
3.用定义的正则对象去检测字符串,reg.test(str);返回值是true或false;
假设用户名只能是字母而不是数字,和特殊符号等
方括号:[ ] 表示一个范围,[a-z] [A-Z] [0-9]表示查找方括号之间的任何字符;
所以把[a-z] [A-Z]放到pattern的位置就好,写一块[a-zA-Z],
[^absa]:表示不是方括号里的字符。
注意双斜杠的写法和点的写法
var reg=/^(http:)["/"]{2}[a-zA-Z]*(\.)[a-zA-Z]+(\.com\.cn)$/ig;
量词:
+ :>=1
*: >=0
?: 0或者1
N{4}:大括号里的个数是指有4个n,
N{4,}:表示至少4个n,
N{4,10}:表示n的个数大于等于4小于等于10.
//验证qq号登陆 必须是纯数字 长度是6-11位
var qqnum="1243432";
var reg=new RegExp("^[1-9][0-9]{5,10}$")
^w[a-z]*rd 开头是w,中间有0个字母或者1个字母
开头和结尾的符号:
^:开头 ^[a-z] 表示开头必须是小写字母 ^n 匹配开头是n的字符
$:结尾 ^[a-z]$ 表示开头和结尾必须是小写字母 n$匹配结尾是n的字符
.在正则中表示任意字符,要使用得先转意,方法: (\.)
元字符
\W :word 查找单词字符 主要就是字母数字下划线,也就是\w=[0-9a-zA-Z_]
\d :digit 同 [0-9]是纯数字。
\s: space 匹配空格, 配合replace可以用来把拿到的字符串前边和后边的空格都去掉(比如说密码或用户名这些东西,)
var str=" sfrew wef wee rg hgth rhw "
str=str.replace(/\s+/
4000
g,"");
alert(str);
\b:边界,匹配单词的开始和结束 \b word\b word的前后都没有东西的时候能检索到。
方法:exec:用于检测字符串是否符合某个模式,返回符合规则的字符串,如果有多个符合规则就返回数组。
返回的结果中包含index :第一次检索到符合规则的单词出现的位置,
Input:要检测的字符串,length:数组的长度;
var str="java is important"
var reg=/\bjava\b/;
alert(reg.exec(str))
exec():
一、(没有while循环,只能进行第一个匹配,匹配完成后如果有小括号就继续匹配他的子表达式)
找到字符串中的第一个匹配的对象就结束了,如果在正则中添加(),而且有可能多个(1,2,3,4个),每个(就称作子表达式)
步骤:
1. 默认第一次匹配正则,如果能找到就算是找到结果,结束匹配过程,这是对于没有()的,
2. 对于有()的还没有结束,系统将小括号里的内容当成是他的子表达式,所以,返回的数组中包含要检索的字符串本身和他的子表达式
3.
例:要检索的内容是(abc)(bc),在第一次匹配的时候不用考虑括号,就直接检索abcbc,找到之后因为有子表达式,所以再进行下次检索,得到abc和bc所以数组中的内容就是[abcbc,abc,bc]
二、(配合while循环进行全局匹配,如果正则中有小括号,用法同第一)
默认只匹配第一个,之后就不在往后匹配了,如果要匹配所有的对象,那就正则表达式必须是全局的也就是g,检索完之后还可以向后执行,只要执行完毕之后都是从当前位置向后继续执行,因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。Exec返回结果是个数组,但是不能知道数组里有几个元素,要拿到整个数组就要用while循环,匹配到一个就添加到数组中(在一开始先声明一个空的数组)。并且能够返回每个元素的位置,
字符串对象和正则的搭配
以上的过程是正则调字符串,也就是reg.exec(str)
使用字符串中的match可以省去上面的循环,是字符串调正则,str.match(reg)返回结果也是数组。
Replace:replace(reg,””) 用逗号后边的替换逗号前边的内容,
Var str=”aaabbcccdddd”;要求结果abcd,把重复的只留一个。
Var reg=/\w+/;
Str.replace(reg,”$&”); $& 把叠词用他自己(也就是正则匹配的文本)去替换,$`:表示的是正则匹配文本左侧的文本,$’ 表示的是正则匹配文本右侧的文本
Search()类似indexof,
* 贪婪匹配: http://www.nowamagic.net/librarys/veda/detail/1037
* 懒惰匹配: http://www.nowamagic.net/librarys/veda/detail/1038
相关文章推荐
- 二十个常用的正则表达式,你值得拥有
- 值得收藏的八个常用的js正则表达式
- 值得收藏的正则表达式大全
- 值得推敲的url正则表达式
- 史上最全最常用的正则表达式-(基本够用值得收藏)
- 天高空 值得收藏的正则表达式
- IOS正则表达式,很详细,值得一看!
- 值得收藏的正则表达式大全
- MySQL专题7之MySQL连接、 MySQL MULL值得处理以及MySQL 正则表达式的使用
- 【值得收藏】最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 值得收藏的正则表达式(匹配中文字符、匹配双字节字符、匹配HTML标记、匹配空行 and so on~~~)
- 牛B的正则表达式:素数判定与线性方程求解
- 使用TCL的正则表达式批量修改多个文件中的单词
- Java正则表达式详解
- IP地址的正则表达式
- 第十三章 正则表达式
- 正则表达式匹配
- 比较全面的常用正则表达式
- 知道这20个正则表达式,能让你少写1,000行代码
- js 正则表达式多个转义字符的用法