日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

经典正则表达式

發(fā)布時(shí)間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典正则表达式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

正則表達(dá)式用于字符串處理,表單驗(yàn)證等場(chǎng)合,實(shí)用高效,但用到時(shí)總是不太把握,以致往往要上網(wǎng)查一番。我將一些常用的表達(dá)式收藏在這里,作備忘之用。本貼隨時(shí)會(huì)更新。

匹配中文字符的正則表達(dá)式: [/u4e00-/u9fa5]

匹配雙字節(jié)字符(包括漢字在內(nèi)):[^/x00-/xff]

應(yīng)用:計(jì)算字符串的長(zhǎng)度(一個(gè)雙字節(jié)字符長(zhǎng)度計(jì)2,ASCII字符計(jì)1)

String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}

匹配空行的正則表達(dá)式:/n[/s| ]*/r

匹配HTML標(biāo)記的正則表達(dá)式:/<(.*)>.*<///1>|<(.*) //>/

匹配首尾空格的正則表達(dá)式:(^/s*)|(/s*$)

?

String.prototype.trim = function()
{
??? return this.replace(/(^/s*)|(/s*$)/g, "");
}

利用正則表達(dá)式分解和轉(zhuǎn)換IP地址:

下面是利用正則表達(dá)式匹配IP地址,并將IP地址轉(zhuǎn)換成對(duì)應(yīng)數(shù)值的Javascript程序:

function IP2V(ip)
{
?re=/(/d+)/.(/d+)/.(/d+)/.(/d+)/g? //匹配IP地址的正則表達(dá)式
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!")
}
}

不過(guò)上面的程序如果不用正則表達(dá)式,而直接用split函數(shù)來(lái)分解可能更簡(jiǎn)單,程序如下:

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))

匹配Email地址的正則表達(dá)式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*

匹配網(wǎng)址URL的正則表達(dá)式:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?

利用正則表達(dá)式去除字串中重復(fù)的字符的算法程序:[注:此程序不正確,原因見(jiàn)紅色字體]

var s="abacabefgeeii"
var s1=s.replace(/(.).*/1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2)? //結(jié)果為:abcefgi

===============================
如果var s = "abacabefggeeii"
結(jié)果就不對(duì)了,結(jié)果為:abeicfgg
正則表達(dá)式的能力有限


我原來(lái)在CSDN上發(fā)貼尋求一個(gè)表達(dá)式來(lái)實(shí)現(xiàn)去除重復(fù)字符的方法,最終沒(méi)有找到,這是我能想到的最簡(jiǎn)單的實(shí)現(xiàn)方法。思路是使用后向引用取出包括重復(fù)的字符,再以重復(fù)的字符建立第二個(gè)表達(dá)式,取到不重復(fù)的字符,兩者串連。這個(gè)方法對(duì)于字符順序有要求的字符串可能不適用。

得用正則表達(dá)式從URL地址中提取文件名的javascript程序,如下結(jié)果為page1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*//){0,}([^/.]+).*/ig,"$2")
alert(s)

利用正則表達(dá)式限制網(wǎng)頁(yè)表單里的文本框輸入內(nèi)容:

用正則表達(dá)式限制只能輸入中文:οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"

用正則表達(dá)式限制只能輸入全角字符:?οnkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"

用正則表達(dá)式限制只能輸入數(shù)字:οnkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

用正則表達(dá)式限制只能輸入數(shù)字和英文:οnkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

?

總結(jié)

以上是生活随笔為你收集整理的经典正则表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。