正则表达式

正则表达式

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

基本写法

方式一:var reg = new RegExp('规则');
方式二:var reg = /规则/;

常用类型

/pattern/attribute

参数attribute是一个可选字符串,常用属性有gi

g	//全局匹配
i	//区分大小写匹配

举例

var str = 'My name is Dctxf,He is a boy!';
var reg = /dctxf/i;
var reg2 =/is/g;
str.match(reg);		//返回["Dctxf"]
str.match(reg2);	//返回["is", "is"]

常用方法

text()

验证字符串中是否存在某字符串,并返回一个boolean值。空格同样会被验证

//代码示例

var str = 'my name is dctxf';
var reg = /dctxf/;	//var reg = /md/;
reg.test(str);	//验证str里面是否存在dctxf 返回true
//如验证str里面是否存在yn 返回false

exec()

检索字符串中指定的值,并返回找到的值。若没有找到返回null

var str = 'my name is dctxf';
var reg = /dctxf/;
reg.exec(str); //返回dctxf

常用字符串正则方法

match()

匹配字符串中符合正则的字符串,并返回找到的字符

var str = 'My name is dctxf';
var reg = /dctxf/;
str.match(reg);		//返回["dctxf"]

搜索字符串中符合正则的字符串,并返回字符串位置

var str = 'My name is dctxf';
var reg = /dctxf/;
str.search(reg);		//返回11

replace()

搜索字符串中符合正则的字符串,并替换找到的字符串

var str = 'My name is dctxf';
var reg = /dctxf/;
str.replace(reg,'xiaofeng');		//返回"My name is xiaofeng"

split()

搜索字符串中符合正则的字符串并按照此规则进行分割,然后返回分割后字符串组成的数组

var str = 'My name is dctxf';
var reg = /\s/;		// \s=' ' 意思是空格
str.split(reg);		//返回["My", "name", "is", "dctxf"]

常用正则

[0-9],[a-z]...

从*到*

var str = 'My name is dctxf';
var reg = /[a-d]/g;		//[a-d]的字符
str.match(reg);		//返回["a", "d", "c"]

衍生正则

[0-9]		//包含0-9
[a-z]		//包含a-z
[^0-9]		//不包含0-9
[^a-z]		//不包含a-z
[abc]		//包含abc
[^abc]		//不包含abc
[abc|def|xyz]		//包含abc或包含def或包含xyz

a.e查找单个字符串,除了换行和结束符

var str = 'My name is dctxf, we are friend';
var reg = /a.e/g;
str.match(reg);		//返回["ame", "are"]

转义字符

\s		//空白字符(空格,tab,换行,回车)
\S		//非空白字符
\w		//单词字符(字母,数字,下划线)
\W		//非单词字符
\d		//数字
\D		//非数字
\b		//单词边界
\B		//非单词边界
\n		//换行符

<!--下面的n代表任意字符串,x,y代表数字-->
n+		//包含至少一个n的字符串
n*		//包含0或多个n的字符串
n?		//包含0或一个n的字符串
n{x}	//包含 x 个 n 的序列的字符串
n{x,y}	//包含x或y个n的序列的字符串
n{x,}	//包含至少x个n的序列的字符串
n$		//任何结尾为 n 的字符串
^n		//任何开头为 n 的字符串

常见正则

汉字

[\u4e00-\u9fa5]

手机号

1[0-9]{10}

邮箱

[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

身份证

[1-9][0-9]{16}[0-9]|[1-9][0-9]{16}x$

网址

[http://,https://][^\s]*
posted @ 2015-12-28 14:11  dctxf  阅读(153)  评论(0编辑  收藏  举报