jquery常用見的正則表達式

quickexpr = /^(?:[^<]*()[^>]*$|#([w-]+)$)/
(?:…)表示是一個非捕獲型

[^<]表示是以"<"起始,包含0個或多個'<'括號

()表示是一個捕獲型,以”起始,中間包含一個或多個字符

$表示字符的結尾

(#([w-]+))表示是一個捕獲型,以’#’號和字符串、數字、_以及-組成

rnotwhite = /s/
s表示是空白字符以外的符號

trimleft = /^s+/trimright = /s+$/
左右邊的空白。s是空白字符。^前綴表示字符串開始,$後綴表示字符串結束

rdigit = /d/
表示是數字

rsingletag = /^(?:)?$/
^
表示以”結束,

(?:)?$

1.非負整數 /^d+$/
2.正整數 /^[0-9]*[1-9][0-9]*$/
3.非正整數 /^((-d+)|(0+))$/
4.負整數 /^-[0-9]*[1-9][0-9]*$/
5.整數 /^-?d+$/
6.非負浮點數 /^d+(.d+)?$/
7.正浮點數 /^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$/
8.非正浮點數 /^((-d+(.d+)?)|(0+(.0+)?))$/
9.負浮點數 /^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$/
10.浮點數 /^(-?d+)(.d+)?$/
11.數字 /^d+(.{1}d+)?$/
12.由26個英文字母組成的字符串 /^[a-za-z]+$/
13.由26個英文字母的大寫組成的字符串 /^[a-z]+$/
14.由26個英文字母的小寫組成的字符串 /^[a-z]+$/
15.由數字和26個英文字母組成的字符串 /^[a-za-z0-9]+$/
16.由數字、26個英文字母或者下劃線組成的字符串 /^w+$/
17.匹配所有單字節長度的字符組成的字符串 /^[x00-xff]+$/
18.匹配所有雙字節長度的字符組成的字符串 /^[^x00-xff]+$/
19.字符串是否含有雙字節字 /[^x00-xff]+/
20.email地址 /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/
或者 /w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/
21.url地址 /^[a-za-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$/
或者 /https://([w-]+.)+[w-]+(/[w- ./?%&=]*)?/
22.匹配中文字符的正則 /[u4e00-u9fa5]/
23.匹配雙字節字符(包括漢字在內) /[^x00-xff]/
應用:計算字符串的長度(一個雙字節字符長度計2,ascii字符計1)
string.prototype.len=function(){
return this.replace([^x00-xff]/g,”aa”).length;
}
24.匹配空行的正則 /n[s| ]*r/
25.匹配html標記的正則 /.*|/
26.匹配首尾空格的正則 /(^s*)|(s*$)/
應用:網頁特效中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現,如下:
string.prototype.trim = function(){
return this.replace(/(^s*)|(s*$)/g, “”);
}
27.匹配ip地址的正則 /(d+).(d+).(d+).(d+)/
應用:利用正則表達式匹配ip地址,並將ip地址轉換成對應數值的javascript程序:
function ip2v(ip){
re=/(d+).(d+).(d+).(d+)/g;
if(re.test(ip)){
return regexp.$1*math.pow(255,3))+
regexp.$2*math.pow(255,2))+
regexp.$3*255+regexp.$4*1;
}
else{
throw new error(“not a valid ip address!”);
}
}
其實直接用split函數來分解可能更簡單,程序如下:
var ip=”10.100.20.168′;
ip=ip.split(“.”);
alert(“ip值是:”+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1));
28.去除字串中重復的字符的javascript程序
var s=”abacabefgeeii”;
var s1=s.replace(/(.).*1/g,”$1′);
var re=new regexp(“[“+s1+”]“,”g”);
var s2=s.replace(re,””);
alert(s1+s2); //結果為:abcefgi

You May Also Like