首页 > 代码库 > 正则表达式--规则表达式

正则表达式--规则表达式

今天学习了正则表达式的一些基础知识,

1.概念:

首先了解了一下正则表达式的含义:一些便于计算机识别的规则,能够快速方便地对字符进行操作。

正如我们人都是有常识的,当我们遇到像:15733541865,shoulder11@sian.com这样的东西想都不用想就知道会是一个手机号,或者一个邮箱地址。

而对于计算机而言,也有一写规则表达式,它是能令计算机读懂的(所以对我们来说看起来比较费劲),也相当于计算机的常识,一遇到就知道你要干什么。

 

2.创建正则对象:

var re = RegExp();  //  js表达方式

var re = / /;     //  perl 表达方式(简便)

 

3.基础用法:

var str = ‘abcdesg‘;

var re = /abc/;      

alert(str.search(re));    ----查找符合re表达式的第一个字符所在的位置

 

var re = /a/i  ;    ----i表示不区分大小写

var re = /a/g ;  ------g表示选中所有满足a的字符

var re = /a | b |c /     ------- 用|来表示多个查找字符

 

var re = / \d /;          -----转义  表示数字digital

var re = /\w/             -----转义 word 字母数字下划线(应用用户名检验)

var re= /\s/               -----转义 空格

 

var re= / \D/             -----除了数字

var re= / \W/            -----除了word

var re=/ \S /             -----除了空格

 

var re = /\d+/g         ---------  +代表许多,可以显示不同长度的数字

str.replace(/a/g i  ,’T’);    ---------替换(g)全部a,无论大小写(i),变成T, 

var re= /1[abc]2/            -------用[]来表示 或者  相当var re =/1a2|1b2|1c2/

 

var re = /<. +>/g            -------- . 表示所有字符,+表示字符任意长度

var re = /<[ ?<>]>/g;    -----------[^<>]表示不能拥有这种情况

 

{n,m}    ------至少出现n次,最多m

{n,}         --------至少n次

*            -----------任意次  {0,}

?           ---------零次或一次 {0,1}

+          ---------一次或任意次{1,}

{n}         ---------正好n次

 

 /?\s+|\s+$/          -----------去除行首行尾空格 

[\u4e00-\u9fa5]       ---------------匹配中文:

 

 

4.应用例子:

4.1过滤敏感词

转换前<textarea id="text1" rows="10" cols="42"></textarea><br/>
      <input type="button" id="btn1" value="点击转换"/><br/>
转换后<textarea id="text2" rows="10" cols="42"></textarea>--><script>
    var oText1 = document.getElementById(text1);
    var oText2 = document.getElementById(text2);
    var oBtn = document.getElementById(btn1);
    
    oBtn.onclick= function(){
        var re = /fuck|shit|stupied/g;            //将敏感词用正则表式表示出来
        oText2.value = oText1.value.replace(re,*);    //若otext1中的输入的value有敏感词,则将替换为*
    };
</script>

 

  4.2QQ号验证:

  QQ号的组成一般由5-11位数字,并且第一位不能为0

<input type="text" id="text1">    
<input type="button"  value="登陆QQ" id="btn1"/>
<script>
//分析QQ号组成,第一位:1-9数字; 由5-11位组成;
var oText1 = document.getElementById(text1);
var oBtn = document.getElementById(btn1);
var re = /[1-9]\d{4,10}/g;    //{4,10}表示最少出现一次,最多出现10次

oBtn.onclick = function(){
    if(oText1.value.match(re)){
        alert(欢迎qq);
    }else{
        alert(您输入的不是qq);    
    }
};
</script>

 

  4.3邮箱验证:

  邮箱组成:shoulder_11@sina.com   ----------  字母|数字|下划线  @  英文   .  英文(2-4长度)

<input type="text" id="text1">    
<input type="button"  value="登陆QQ" id="btn1"/>
<script>
var oText1 = document.getElementById(text1);
var oBtn = document.getElementById(btn1);

//var re=/\w+@[a-z0-9]+\.[a-z]{2,4}/g;    //缺点:只要字符部分符合要求就会提示true
var re=/^\w+@[a-z0-9]+\.[a-z]{2,4}$/g;//行首行尾全部符合要求



oBtn.onclick = function(){
    if(oText1.value.match(re)){    
        alert(是邮箱!);
    }else{
        alert(不是邮箱!);    
    }
};

 

正则表达式--规则表达式