js正則表達式2簡單模式

js正則的簡單模式都是正則裏面相對較爲基本的內容,在這裏主要分爲一下幾類:

1.元字符:[   {   (  *  +  .  ?   $   |   \,這些字符在正則表達式中代表着一些特殊的含義,在查找的時候需要進行轉義(加上"\"即表示轉義)。

上面各個字符的具體特殊含義爲:

[ ]:匹配括號中的任意一個字符,注意是有且只有一個。

{}:這個一般和量詞一起使用

():表示的是分組

*:在表示量詞中使用,表示的是出現0次或者多次

+:在表示量詞中使用,表示的是出現1次或者多次

?:在表示量詞中使用,表示的是出現0次或者一次

.:表示的是任意一個字符

$:一行的結尾

^:一行的開頭

\:通常會和其他的字符一起使用,組合成一個特殊的含義。

eg:找下面的字符串中匹配"("

var str="the  (  is a special char in RegExp";

var reg=/\(/gi;

alert(reg.exec(str));//就會正確顯示出(;

2.特殊字符:一些有特殊含義的組合常見的有:

\s:空格字符(包括空格,tab,換行,換頁,回車)

\S:非空字符(注意這是大寫的S),即相當於:[^\s];

\d:一個數字,即相當於[0-9];

\D:一個非數字

\w:一個單詞字符(包括字母數字和下劃線)即相當於[a-zA-Z_0-9];

\W:一個非單詞字符

\b:一個單詞的邊界

\B:一個非單詞的邊界

eg:找出一個字符串中所有的數字的個數,單詞的個數,以及最長的那個單詞

var str="Whether 60 or 16, there is in every human being’s heart the lure of wonders, the unfailing appetite for what’s next and thejoy of the game of living. In the center of your heart and my heart, there is a wireless station; so long as it receivesmessages of beauty, hope, courage and power from man and from the infinite, so long as you are young";
var reg=/\w+/gi;//匹配出所有的單詞
var regnum=/\d+/;//匹配出所有的數字
var s=str.match(reg);//得到所有的單詞和數字的數組
var nums=new Array();//用來保存數字
var numIndex=0;//記錄數字的個數
var words=new Array();//保存單詞
var wordsIndex=0;//記錄單詞的個數
var maxlength=0;//記錄最長的單詞的長度
var maxWords="";//記錄最長的單詞
alert(s);
for(var i=0;i<s.length;i++){
if(regnum.test(s[i])){
nums[numIndex++]=s[i];
alert("aa");
}else{
words[wordsIndex++]=s[i];
}

for(var i=0;i<words.length;i++){
if(words[i].length>maxlength){
maxWords=words[i];
maxlength=words[i].length;
}
}

document.write("數字有:");
for(var i=0;i<nums.length;i++){
document.write(nums[i]+"<br/>");
}
document.write("單詞的個數是:"+(words.length+1)+"分別是:");
for(var i=0;i<words.length;i++){
document.write(words[i]+"<br/>");
}
document.write("最長的單詞是:"+maxWords+"長度是:"+maxlength);

3.字符類

   簡單類:[],中括號中的任意一個字符

   負向類:[^],非中括號中的字符

   範圍類:[起始字符-終止字符]:中括號範圍類的字符

   組合類:上面幾種情況的組合

   預定義類:即前面的預定義字符,弱項單獨匹配出這些字符需要轉義

4.量詞:

   {n}:表示固定出現n次

   {n,}:表示至少出現n次

   {n,m}:表示出現n到m次

eg:

    一年的12個月份,兩種形式01-12或者1-12,正則表達式:(0?[1-9]|1[0-2]);

   Email:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$     這個是十分嚴格和正規的幾乎包含了所有的合法Email地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章