站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        經(jīng)典JavaScript正則表達(dá)式實(shí)戰(zhàn)(附pdf)

        關(guān)于測試代碼
        本文不是使用Dreamweaver編輯,以下測試代碼可能已經(jīng)在賦值粘貼的過程做了一些調(diào)整,可能執(zhí)行失效。可以參看本文的pdf版本。

        匹配結(jié)尾的數(shù)字

        復(fù)制代碼 代碼如下:
        30CAC0040 取出40
        3SFASDF92 取出92

        正則如下:/d+$/g

        統(tǒng)一空格個(gè)數(shù)

        字符串內(nèi)字符鍵有空格,但是空格的數(shù)量可能不一致,通過正則將空格的個(gè)數(shù)統(tǒng)一變?yōu)橐粋€(gè)。

        例如:藍(lán) 色 理 想

        變成:藍(lán) 色 理 想

        aobert的正則:

        復(fù)制代碼 代碼如下:
        <script type=”text/javascript”>
        var str=”藍(lán) 色 理 想”
        var reg=/s+/g
        str = str.replace(reg,” “)
        document.write(str)
        </script>

        判斷字符串是不是由數(shù)字組成
        來源:有沒有簡單的方法判斷字符串由數(shù)字組成?

        這個(gè)正則比較簡單,寫了一個(gè)測試

        復(fù)制代碼 代碼如下:
        <script type=”text/javascript”>
        function isDigit(str){
        var reg = /^d*$/;
        return reg.test(str);
        }
        var str = “7654321”;
        document.write(isDigit(str));
        var str = “test”;
        document.write(isDigit(str));
        </script>

        電話號(hào)碼正則

        :求一個(gè)驗(yàn)證電話號(hào)碼的JS正則

        復(fù)制代碼 代碼如下:
        /^d{3,4}-d{7,8}(-d{3,4})?$/區(qū)號(hào)必填為3-4位的數(shù)字,區(qū)號(hào)之后用“-”與電話號(hào)碼連接

        ^d{3,4}-電話號(hào)碼為7-8位的數(shù)字

        d{7,8}分機(jī)號(hào)碼為3-4位的數(shù)字,非必填,但若填寫則以“-”與電話號(hào)碼相連接

        (-d{3,4})?手機(jī)號(hào)碼正則表達(dá)式

        正則驗(yàn)證手機(jī)號(hào),忽略前面的0,支持130-139,150-159。忽略前面0之后判斷它是11位的。

        cloeft的正則:

        復(fù)制代碼 代碼如下:
        /^0*(13|15)d{9}$/^0*匹配掉開頭任意數(shù)量的0。

        發(fā)布的手機(jī)號(hào)碼

        復(fù)制代碼 代碼如下:
        function checkMobile(){
        var sMobile = document.mobileform.mobile.value
        if(!(/^1[3|4|5|8][0-9]d{4,8}$/.test(sMobile))){
        alert(“不是完整的11位手機(jī)號(hào)或者正確的手機(jī)號(hào)前七位”);
        document.mobileform.mobile.focus();
        return false;
        }
        }

        由于手機(jī)號(hào)碼是13任意數(shù)字9位,和15任意數(shù)字9位,所以可以用(13|15)d{9}匹配。

        測試代碼如下:

        復(fù)制代碼 代碼如下:
        function testReg(reg,str){
        return reg.test(str);
        }
        var reg =/^1[3|4|5|8][0-9]d{4,8}$/;
        var str = ‘13889294444’;
        var str2 = ‘12889293333’;
        var str3 = ‘23445567’;
        document.write(testReg(reg,str)+'<br />’);
        document.write(testReg(reg,str2)+'<br />’);
        document.write(testReg(reg,str3)+'<br />’);

        使用正則表達(dá)式實(shí)現(xiàn)刪除字符串中的空格:
        來源:請(qǐng)問js中有沒有去掉空格的函數(shù)

        代碼以及測試代碼如下:

        復(fù)制代碼 代碼如下:
        <script type=”text/javascript”>
        //刪除字符串兩側(cè)的空白字符。
        function trim(str){
        return str.replace(/^s+|s+$/g,”);
        }
        //刪除字符串左側(cè)的空白字符。
        function ltrim(str){
        return str.replace(/^s+/g,”);
        }
        //刪除字符串右側(cè)的空白字符。
        function rtrim(str){
        return str.replace(/s+$/g,”);
        }
        //以下為測試代碼
        var trimTest = ” 123456789 “;
        //前后各有一個(gè)空格。
        document.write(‘length:’+trimTest.length+'<br />’);
        //使用前
        document.write(‘ltrim length:’+ltrim(trimTest).length+'<br />’);
        //使用ltrim后
        document.write(‘rtrim length:’+rtrim(trimTest).length+'<br />’);
        //使用rtrim后
        document.write(‘trim length:’+trim(trimTest).length+'<br />’);
        //使用trim后
        </script>

        測試的結(jié)果如下:

        length:11
        ltrim length:10
        rtrim length:10
        trim length:9限制文本框只能輸入數(shù)字和小數(shù)點(diǎn)等等
        來源:文本框輸入限制的問題????

        只能輸入數(shù)字和小數(shù)點(diǎn)

        復(fù)制代碼 代碼如下:
        var reg = /^d*.?d{0,2}$/開頭有若干個(gè)數(shù)字,中間有0個(gè)或者一個(gè)小數(shù)點(diǎn),結(jié)尾有0到2個(gè)數(shù)字。

        只能輸入小寫的英文字母和小數(shù)點(diǎn),和冒號(hào),正反斜杠(:./)

        復(fù)制代碼 代碼如下:
        var reg = /[a-z./\:]+/;a-z包括了小寫的英文字母,.是小數(shù)點(diǎn),/和\分別是左右反斜線,最后是冒號(hào)。整個(gè)組成一個(gè)字符集和代碼任一均可,最后在加上+,1或者多個(gè)。

        替換小數(shù)點(diǎn)前內(nèi)容為指定內(nèi)容

        請(qǐng)問 怎么把這個(gè)字符串的小數(shù)點(diǎn)前面的字符替換為我自定義的字符串啊?
        例如:infomarket.php?id=197 替換為 test.php?id=197
        應(yīng)該可以把第一個(gè)點(diǎn)“.”之前的所有單詞字符替換為test就可以了。我寫的正則如下:

        復(fù)制代碼 代碼如下:
        <script type=”text/javascript”>
        var str = “infomarket.php?id=197”;
        var reg = /^w*/ig;
        //匹配字符串開頭的任意個(gè)單詞字符
        str = str.replace(reg,’test’);
        document.write(str);
        </script>

        原帖的有點(diǎn)復(fù)雜,沒太看明白。

        只匹配中文的正則表達(dá)式

        前兩天看的《JavaScript開發(fā)王》里恰好有中文的unicode范圍,正則如下:

        /[u4E00-u9FA5uf900-ufa2d]/寫了一個(gè)簡單的測試,會(huì)把所有的中文替換成“哦”。

        復(fù)制代碼 代碼如下:
        <script type=”text/javascript”>
        var str = “有中文?and English.”;
        var reg = /[u4E00-u9FA5uf900-ufa2d]/ig;
        str = str.replace(reg,’哦’);
        document.write(str);
        </script>

        返回字符串的中文字符個(gè)數(shù)

        一般的字符長度對(duì)中文和英文都是不分別的 如JS里的length,那么如何返回字符串中中文字符的個(gè)數(shù)呢?guoshuang老師在原帖中給出了解決方案,我又沒看懂……

        不過我自己也想到了一個(gè)辦法:先去掉非中文字符,再返回length屬性。函數(shù)以及測試代碼如下:

        復(fù)制代碼 代碼如下:
        <script type=”text/javascript”>
        function cLength(str){
        var reg = /[^u4E00-u9FA5uf900-ufa2d]/g;
        //匹配非中文的正則表達(dá)式
        var temp = str.replace(reg,”);
        return temp.length;
        }
        var str = “中文123”;
        document.write(str.length+'<br />’);
        document.write(cLength(str));
        </script>

        結(jié)果:

        5
        2中文兩個(gè),數(shù)字三個(gè),正確。

        下面的測試也正確。

        復(fù)制代碼 代碼如下:
        var str = “中文123tets@#!#%$#[][{}”;
        document.write(str.length+'<br />’);
        document.write(cLength(str));

        正則表達(dá)式取得匹配IP地址前三段
        來源:如何用正則取IP前3段

        192.168.118.101,192.168.118.72, 192.168.118.1都替換成:192.168.118

        只要匹配掉最后一段并且替換為空字符串就行了,正則如下:

        /.d{1,3}$/匹配結(jié)尾的.n,.nn或者.nnn。

        測試代碼如下:

        復(fù)制代碼 代碼如下:
        function replaceReg(reg,str){
        return str.replace(reg,”)
        }
        var reg = /.d{1,3}$/;
        var str = ‘192.168.118.101’;
        var str2 = ‘192.168.118.72’;
        var str3 = ‘192.168.118.1’;
        document.write(replaceReg(reg,str)+'<br />’);
        document.write(replaceReg(reg,str2)+'<br />’);
        document.write(replaceReg(reg,str3)+'<br />’);

        相似的有,這個(gè)帖子里有一個(gè)驗(yàn)證IP地址的方法:求檢驗(yàn)MAC地址的正則表達(dá)例子

        匹配<ul>與<ul>之間的內(nèi)容
        <ul>safsf<ul>safsf</ul><ul>safsf</ul></ul>

        用正則可以得到 <ul>起到下個(gè)<ul> 之間的內(nèi)容。

        正則如下:

        復(fù)制代碼 代碼如下:
        /<ul>[sS]+?<ul>/i

        首先匹配兩側(cè)的ul標(biāo)簽,中間的[sS]+?可以匹配一個(gè)或者多個(gè)任意字符,一定要非貪婪,否則會(huì)匹配<ul>safsf<ul>safsf</ul><ul>。

        用正則表達(dá)式獲得文件名

        c:imagestupian

        主站蜘蛛池模板: 一本久久a久久精品综合香蕉| 四虎影院国产精品| 四虎成人精品永久免费AV| 日韩精品在线视频| 亚洲乱码日产精品a级毛片久久| 91精品国产高清久久久久久国产嫩草| 老司机67194精品线观看| 久久精品国产黑森林| 92精品国产自产在线观看| 99re这里只有精品国产精品| 日韩人妻精品一区二区三区视频| 久久97久久97精品免视看| 98精品国产自产在线XXXX| 99久久久精品免费观看国产| 久久精品亚洲中文字幕无码麻豆| 亚洲国产精品无码久久青草 | 欧美精品区一级片免费播放| 国产成人精品午夜福麻豆| 久久福利青草精品资源站免费 | 亚洲午夜精品一级在线播放放| 国产精品自在欧美一区| 午夜精品在线观看| 精品国产第1页| 国产午夜精品理论片久久影视| 97精品伊人久久大香线蕉app| 日韩精品久久无码中文字幕| 热re99久久精品国99热| 亚洲级αV无码毛片久久精品| 中文字幕精品亚洲无线码一区应用 | 老汉精品免费AV在线播放| 无码国产精品一区二区免费vr | 精品国产sm捆绑最大网免费站| 无码精品久久久天天影视| 亚洲AV无码乱码精品国产| 欧美在线精品永久免费播放| 无码精品人妻一区| 亚洲av无码成人精品区在线播放 | 最新欧美性爱精品一区二区三区| 中文字幕在线精品视频入口一区| 亚洲精品国产成人影院| 亚洲麻豆精品国偷自产在线91|