JS正则表达式

1、正则表达式是对字符串的操作,常用的字符串操作有:serch(查找)  substring(获取子字符串的起始位置) chaAt(获取某个字符串) split(分割字符串到一个数组里)

2、match的用法

量词的概念:

什么是量词

出现的次数 {n,m},至少出现n次,最多m次 例子:查找QQ号

常用量词 {n,} 至少n次

* 任意次 {0,}

? 零次或一次 {0,1}

+ 一次或任意次{1,}

{n} 正好n次

<script>
var str='asdf 34 656 cvs33';
var re=/\d+/g;  //g 表示全局 如果去掉那么只匹配一个结果,g是将全部的匹配结果返回,+为量词表示连续 如果不用+计算机会把匹配结果全部拆分为单个的字符串
alert(str.match(re));
</script>

3、replace的用法

<script>
var str='abc aaa erw';
var re=/a/g;
alert(str.replace(re, '0'));
</script>

4、search的用法

<script>
var str='abcdef';
alert(str.search('u'));        //位置, -1 如果存在则返回第一次出现的位置 如果不存在返回-1
</script>

5、split的用法

<script>
var str='12-56-aaa-89';
var arr=str.split('-'); //结果为 12,56,aaa,89
alert(arr)
</script>

6、substring的用法

<script>
var str='abcdef';
//alert(str.substring(2, 5));    //不包括结束位置
alert(str.substring(1));
</script>

7、第一个正则表达式

<script>
var str="abcdef";
//var re=new RegExp('b','i'); //i表示不区分大小写
var re=/a/i;
alert(str.search(re));
</script>

8、方括号的使用

<script>
var str='apc xpc ppc bpc spc tpc';
var re=/[apx]pc/g;
alert(str.match(re));
</script>

任意字符 [abc] 例子:o[usb]t——obt、ost、out

范围 [a-z]、[0-9] 例子:id[0-9]——id0、id5

排除 [^a] 例子:o[^0-9]t——oat、o?t、o t

9、过滤标签的正则写法

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function ()
{
    var oTxt1=document.getElementById('txt1');
    var oTxt2=document.getElementById('txt2');
    var oBtn=document.getElementById('btn1');
    oBtn.onclick=function ()
    {
        var re=/<[^<>]+>/g;   
        oTxt2.value=oTxt1.value.replace(re, '');
    };
};
</script>
</head>
<body>
<textarea id="txt1" rows="10" cols="40"></textarea><br>
<input id="btn1" type="button" value="转换" /><br>
<textarea id="txt2" rows="10" cols="40"></textarea>
</body>
</html>

10、过滤敏感词

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function()
{
    var oTxt=document.getElementById("txt1")[0];
    var oTxt2=document.getElementById("txt2")[0];
    var oBtn=document.getElementById("btn1")[0];
    oBtn.onclick=function()
    {
        var re=/北京|百度|淘宝/g;
        oTxt2.value=oTxt.value.replace(re,"***")
    }
}
</script>
</head>

<body>
<textarea id="txt1" rows="10" cols="40"></textarea><br>
<input id="btn1" type="button" value="过滤" /><br>
<textarea id="txt2" rows="10" cols="40"></textarea>
</body>
</html>

11、校验邮箱

思路:邮箱开始为 字母、数字、下划线+@字母、数字+.+字母

字母数字下划线的正则为 \w+@[a-z0-9]+.+[a-z] 思路出来了代码也就出来了 

PS 我们用到test()的时候,只要代码中含有匹配内容就返回true 所以我们需要加上^开始位置+$结束位置

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function()
{
    var oTxt=document.getElementById("txt1");
    var oBtn=document.getElementById("btn1");
    oBtn.onclick=function()
    {
        var re=/^\w+@[a-z0-9]+\.[a-z]+$/i;
        if(re.test(oTxt.value))
        {
            alert("邮箱格式正确");
        }else{
            alert("你丫写错了!")
        }
    }
}
</script>
</head>

<body>
<input type="text" id="txt1" />
<input type="button" value="校验" id="btn1" />
</body>
</html>

 

 

 

 

posted @ 2013-11-13 16:44  @敏敏  阅读(182)  评论(0编辑  收藏  举报