\n 換行符
\s 空格
\S 非空格
\d 數字
\D 非數字
\w 字符(包含字母,數字和下劃線)
\W 非字符
常用的正則表達式匹配:
匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*
網址:[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的用法也不是很清楚希