JavaScript正则表达式

\n 换行符
\s 空格
\S 非空格
\d 数字
\D 非数字
\w 字符(包含字母,数字和下划线)
\W 非字符

常用的正则表达式匹配:
匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*Email\w+@[az09]+(.[az]+)1,3
网址:[a-zA-z]+://[^\s]*
QQ号:[1-9][0-9]{4,9}
邮政编码:[1-9]\d{5}
身份证:[1-9]\d{14}|[1-9]\d{17}[1-9]\d{16}x

在正则表达式的使用中常用到:
indexOf 查找

var str ="Hello world!"
alert(str.indexOf("Hello")
alert(str.indexOf("World")
alert(str.indexOf("world")
弹出结果就为
0
-1
6

substring 获取子字符串

var str ="hello world"
alert(str.substring(3,6))
弹出
lo w

charAt 获取某个字符

var str ="hello world"
alert(str.charAt(3))
弹出
l

split 分割字符串,获取数组

var str="How are you doing today?"

document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))
输出
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you

正则表达式的方法:
1.正则.test(字符串)返回布尔值,用作判断

var str = 'abcdef';
var re = /b/;     //里面是个整体,如果是bd则是假
alert(re.test(str));

2.字符串.search(正则)返回匹配成功位置

var str ="abcdef";
var  re =/B/i   //不区分大小写则加i
alert(str.search(re))
弹出
1

3.str.match(正则)。匹配字符串,成功返回数组,失败返回null

str.match(/\d+/g)  //g是全剧匹配 +是至少出现一次

4.字符串.replace(正则,新的字符) 。正则匹配,如果成功就把匹配成功的字符替换成新的字符。

var str ="abcdef";
var re =/a/;
alert(str.replace(re,"b"));
弹出
bbcdef

正则表达式的范围
^写在正则最前面表示起始必须为
$写在正则的最后表示结束必须为

正则表达式的例子

<title>无标题文档</title>
<style type="text/css">
textarea{width:300px; height:500px;}
</style>
</head>
<body>
<textarea id="text1"></textarea>
<input type="button" id="btn1" value="转换" class="box box1 box2"/>
<textarea id="text2"></textarea>
<script>
var str = 'haj123sdk54hask33dkhalsd879';


//在str中找出数字放在数组中
function findNum(str){
    var arr = [];var tmp = '';
    for(var i=0;i<str.length;i++){
        if( str.charAt(i)<='9' && str.charAt(i)>='0' ){
            tmp += str.charAt(i);}
        else{if(tmp){
            arr.push(tmp);tmp = '';
            }
        }
    }
    if(tmp){
        arr.push(tmp);tmp = '';
    }
    return arr;
}
//用正则表达式找到数字放在数组里
function findNum(str){
    return str.match(/\d+/g);
}

alert(findNum(str));


//几种简单的创建数组和对象的方法
var arr=[];
var arr = new Array();
var obj ={};
var obj = new Object();
var re = /a/;
var re = new RegExp('a');


//正则匹配失败返回布尔值为0
var str = 'abcdef';
var re = /abd/;     //里面是个整体,如果是bd则是假
alert(re.test(str));


//\D为非数字的正则匹配,结果为0
var str = '37482t9348791'; 
var re = /\D/;
alert(!re.test(str));


//不分大小写,匹配b返回b的位置
var str = 'abcdef';  
var re = /B/i;
alert(str.search(re));



var oText1 = document.getElementById('text1');
var oText2 = document.getElementById('text2');
var oBtn = document.getElementById('btn1');

//剔除敏感词
oBtn.onclick = function(){
    var str = oText1.value;
    var re = /公安部|斧子|死亡|服毒身亡/g;
    str = str.replace(re,function(a){
        var num = '';
        for(var i=0;i<a.length;i++){
            num+='*';
        }
        return num;
    });
    oText2.value = str;
}

alert(str);


//把-变成.变成2013.6.7   
//s0为3- 6- s1是3 6  s2是-
var str = '2013-6-7';
var re = /(\d)(-)+/g;
str = str.replace(re,function($0,$1,$2){
    //alert($0);
    return $1+'.';
})
alert(str);


//正则表达式是的分组处理
var str = 'abc';
var re = /(a)(b)(c)/;
alert(str.match(re));


//[]里面是或者的关系返回的布尔值为1
var str = 'abc';
var re = /a[bde]c/;
alert(re.test(str)); 


//^表示排除的意思 返回的布尔值为0
var str = 'abc';
var re = /a[^bde]c/;
alert(re.test(str));


//[a-z]表示从a到z中都可以。返回的布尔值1
var str = 'abc';
var re = /a[a-z]c/;
alert(re.test(str)); 



//<h3>标题</h3>aaaaa
//替换成标题aaaaa
oBtn.onclick = function(){
    var str = oText1.value;
    var re = /<(\w|\/)[^<]+>/g;
    str = str.replace(re,'');
    alert(str);
}


//匹配开头为数字或者结尾是数字的内容替换成空。
oBtn.onclick = function(){
    var str = oText1.value;
    var re = /^\d+|\d+$/g;
    str = str.replace(re,'');
    alert(str);
}


//匹配独立部分
var str='onetwo';
var re =/two\b/;
alert(re.test(str));

var re = /\w\w/;
var re = /(\w)\1/;
</script>
</body>
</html>

这里面
\b
/<(\w|\/)[^<]+>/g的用法也不是很清楚希

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值