正则表达式基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式基础相关的知识,希望对你有一定的参考价值。

正则表达式基础

1.    Search 查找某个字符的位置

var str='abcdef'

alert(str.search('a'))

 

 

 

2.Substring   获取子字符串

var str='abcdef'

alert(str.substring(2-5))//从字符串中截取2-5 但是不包括5

也可以传进去一个参数 从哪个参数直接截取到结尾

var str='abcdef'

alert(str.substring(2))//从第二个位置开始截取到末尾

 

3.CharAt      获取某个字符

var str='abcdef'

alert(str.charAt('2'))//获取2位置上的值

 

 

4.Split        分割字符串,获得数组

var str='12-22-aa-9'

var arr=str.split('-')

alert(arr)

 

 

 

二、正则表达式

1、什么是正则表达式:可以理解为一个规则,也叫规则表达式

 

正则表达式有2种方法写

第一种 js风格

var re=new RegExp('b') 这个里面的b就代表b本身

var str='abcdef'

alert(str.search(re));

第二种perl风格

var re=/b/; 跟第一种效果一样

var str='abcdef'

alert(str.search(re));

 

2i的用法(忽略大小写)

第一种var re=new RegExp('b', 'i')

var str='abcdef'

alert(str.search(re));

 

   第二种var re=/b/i;

   var str='aBcdef'

   alert(str.search(re));

 

 

 

3match 把所有匹配的东西,全部提取出来

\d  数字

var str='aqq 23  3  vaqwd'

var re=/\d/;找数字,但是只能找一个

alert(str.match(re));

 

4g可以把所有数字找出来

var str='aqq 23  3  vaqwd'

var re=/\d/g;找数字,全部找出来,但是不是连起来的,比如23会变成2,3

alert(str.match(re));

 

5、想解决上面不是连起来的问题使用+号,表示若干

var str='aqq 23 222 3  vaqwd'

var re=/\d+/g;

alert(str.match(re));

 

6replace 替换

下面例子把a替换成0

var str='aqq 23 222 3  vaqwd'

var re=/a/g;

alert(str.replace(re,'0'))

多个替换的写法

Var re=/北京|百度|淘宝/g

 

 

7、分括号[] 专业叫法是元字符,我习惯叫方括号

用法1:[abc]这是一种或的用法abc取那个都行

var str='apc xpc dpc ipc ppc'

        var re=/[apx]pc/g;

        alert(str.match(re))

效果看一下就明白了

用法2[a-z] [0-9]范围

var str='a22c 33 dp44 445 ppc'

       

        alert(str.match(/[0-9]+/g))

 

 

 

用法3[^a-z]排除a-z

var str='a22c 33 dp44 445 ppc'

       

        alert(str.match(/[^0-9]+/g))

 

用法4:组合起来用[^a-z0-9]排除a-z0-9

 

 

8、过滤html标签的方法,比如小说里面都有好多标签 给过滤掉

var re=/<[^<>]+>/g

 

9\d 数字 [0-9]  

\w 英文 数字 下划线 [a-z0-9_]

\s 空白字符

 

\D [^0-9]

\W [^a-z0-9_]

\S 非空白字符

 

 

10、量词

 

{n} 正好出现n

\d{8} 8位数字

电话号码是非0开始的所以[1-9]\d{7}

 

{n,m} 最少n次,最多m

QQ号码最少5位数字而且开头是非0,写法是

[1-9]\d{4,10}

 

 

{n,}最少n次,最多不限

 

 

等价于{1}最低出现一次,最多不限

  等价于{0,1}最少1次,最多1次,也就是可有可无

*等价于{0}

 

 

 

11、邮箱校验

[email protected]正常邮箱

一串英文、数字、下滑线   @   一串英文、数字  .   一串英文

\w+                      @   [a-z0-9]+       \.   [a-z]+

 

Var re=/^\[email protected][a-z0-9]+\.[a-z]+$/i   // test检验正则是否符合规则。正确返回true 不确定为flase

Test有个特性  字符串一部分符合要求,就可以返回true

^不出现在方括号里面

代表^行首和$行尾

 

if(re.test(oTxt.value))

{

Alert(’合法的邮箱’)

}

else

{

Alert(’不合法的邮箱’)

 

}

 

 

 


以上是关于正则表达式基础的主要内容,如果未能解决你的问题,请参考以下文章

[基础]正则表达式

正则表达式基础---转自 Python正则表达式指南 前边

python基础之正则表达式

python正则表达式---正则表达式基础

shell编程之正则表达式基础正则表达式

JS正则表达式基础认知