威尼斯手机平台登陆-官方网站登录

威尼斯手机平台登陆为您带来世界三大博彩公司最新相关资讯,威尼斯官方网站登录充分考虑到不同地域网民的不同需求,威尼斯手机平台登陆良好的用户界面,人性化的操作,实用的功能设计使其广泛受到欢迎,推动实体出版、影视、动漫、游戏等相关文化产业的发展。

您的位置:威尼斯手机平台登陆 > 最新文章 > 我已经编写了15个超有用的正则表达式,   5. 电话号码正则...3

我已经编写了15个超有用的正则表达式,   5. 电话号码正则...3

发布时间:2020-04-21 16:06编辑:最新文章浏览(70)

    对此开采人士来讲,正则表明式是叁个特别有效的机能,它提供了 查找,相称,替换 句子,单词,也许此外格式的字符串。那篇作品重要介绍了14个超实用的php正则表明式,供给的冤家能够参谋下。在此篇散文里,笔者一度编写制定了贰十一个超有用的正则表明式,WEB开拓人士都应有将它收藏到本身的工具包。

    来源:

    图片 1

    目录

    验证域名检查二个字符串是还是不是是个有效域名

    $url = "http://komunitasweb.com/"; 
    if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { 
      echo "Your url is ok."; 
    } else { 
      echo "Wrong url."; 
    }
    

       1. 正则表达式实战...1
       2. 天造地设结尾的数字...2
       3. 集结空格个数...3
       4. 判别字符串是还是不是由数字组成...3
       5. 电话号码正则...3
       6. 手机号码正则表达式...4
       7. 行使正则表明式达成删除字符串中的空格:...4
       8. 范围文本框只好输入数字和小数点等等...5
       9. 更动小数点前内容为钦命内容...5
      10. 只优秀粤语的正则表明式...5
      11. 回去字符串的汉语字符个数...6
      12. 正则表达式得到相配IP地址前三段...6
      13. 相称<ul>与<ul>之间的内容...7
      14. 用正则表明式得到文件名...7
      15. 相对路线变相对路线...8
      16. 顾客名正则...8
      17. 同盟乌克兰语地址...8
      18. 正则相配价格...9
      19. 居民身份证编号的相称...10
      20. 要求文本有钦定行数...10
      21. 单词首字母大写...10
      22. 正则验证日期格式...11
      23. 去掉文件的后缀名...12
      24. 证实邮箱的正则表达式...12
      25. 相称源代码中的链接...13
      26. 相配链接的文字...14
      27. 正则判定标签是否闭合...14
      28. 用正则获得钦命标签的内容...15
      29. 正则剖断是还是不是为数字与字母的混合...16
      30. 空格与日语同时设有...17
      31. 来得或许封存正则表达式相称的一对内容...18
      32. 正则表明式替换变量...18
      33. 正则替换钦点属性中的文本...19
      34. 将阿拉伯数字替换为华语大写格局...20
      35. 轮番文本中的U奇骏L为链接...21
      36. 从HTML代码段删除钦点标签特别内容...21
      37. 用正则给文本分段...22
      38. 调换源代码中的标签...22
      39. 给属性增多双引号...23
      40. 给table加上tbody. 25
      41. 去掉标签的全数属性...25
      42. 正则替换特定单词...25
      43. 点名文字高亮展现...26
      44. 去除标签...27
      45. 错误贴...28
      46. 太难贴...28
      47. 合作数字的“正则”. 28
      48. 正则能源...28

    从一个字符串中 特出有个别单词

    这是一个不胜有效的在三个字符串中相称出某些单词 况且优良它,非常实用的搜寻结果

    $text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or 
    
    regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; 
    $text = preg_replace("/b(regex)b/i", '1', $text); 
    echo $text;
    

    优越查询结果在您的 WordPress 博客里就疑似刚刚作者说的,上面的这段代码能够很有益的检索出结果,而那边是叁个更加好的主意去实行找寻在某些WordPress的博客上展开你的文书 search.php ,然后找到 方法 the_title(卡塔尔(قطر‎ 然后用上边代码替换掉它

    echo $title; 
    
    Now, just before the modified line, add this code: 
    
    <?php 
      $title   = get_the_title(); 
      $keys= explode(" ",$s); 
      $title   = preg_replace('/('.implode('|', $keys) .')/iu', 
        '<strong></strong>', 
        $title); 
    ?> 
    
    Save the search.php file and open style.css. Append the following line to it: 
    
    strong.search-excerpt { background: yellow; }
    

    至于测量检验代码

    正文不是接纳Dreamweaver编辑,以下测量试验代码恐怕早就在赋值粘贴的进度做了有个别调动,大概进行失效。能够参照本文的pdf版本 。

    从HTML文书档案中获取全套图片

    万一您曾经希望去赢得某些网页上的整套图形,这段代码正是您要求的,你能够轻巧的确立多个图片下运载飞机器人

    $images = array(); 
    preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media); 
    unset($data); 
    $data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]); 
    foreach($data as $url) 
    { 
      $info = pathinfo($url); 
      if (isset($info['extension'])) 
      { 
        if (($info['extension'] == 'jpg') || 
        ($info['extension'] == 'jpeg') || 
        ($info['extension'] == 'gif') || 
        ($info['extension'] == 'png')) 
        array_push($images, $url); 
      } 
    }
    

    特别结尾的数字

    出自:咋样用 javascript 正则表明式 抽出字符串最终一组数字,多谢


    30CAC0040 取出40
    3SFASDF92 取出92

     正则如下:/d+$/g 
    

    除去重复字母

    时有时重复输入字母? 那么些表明式正切合.

    $text = preg_replace("/s(w+s)1/i", "$1", $text);
    

    归并空格个数

    根源:正则相配空格的主题材料

    字符串内字符键有空格,但是空格的数额大概不等同,通过正则将空格的个数统一改为一个。

    例如:蓝 色  理    想

    变成:蓝 色 理 想

    aobert的正则:

     <script type="text/javascript"> 
    
       var str="蓝 色 理 想" 
    
       var reg=/s+/g 
    
       str = str.replace(reg," ") 
    
       document.write(str) 
    
       </script> 
    

    删除重复的标点

    效果同上,但只是面前碰着标点,白白重复的逗号

    $text = preg_replace("/.+/i", ".", $text);
    

    推断字符串是还是不是由数字组合

    发源:有未有简要的章程剖断字符串由数字组合?

    本条正则比较轻易,写了多少个测验

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

    很多个XML也许HTML标签

    以此大致的函数有多个参数:第叁个是您要合营的竹签,第一个是含有XML或HTML的变量,再重申下,那些实在很有力

    function get_tag( $tag, $xml ) { 
     $tag = preg_quote($tag); 
     preg_match_all('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>.'}', 
              $xml, 
              $matches, 
              PREG_PATTERN_ORDER); 
    
     return $matches[1]; 
    }
    

    电话号码正则

    源点:想问一下有关电话号码的正则判定

    :求三个表达电话号码的JS正则

     /^d{3,4}-d{7,8}(-d{3,4})?$/
    

    区号必填为3-4位的数字,区号之后用“-”与电话号码连接

     ^d{3,4}-
    

    电话号码为7-8位的数字

     d{7,8}
    

    分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接

     (-d{3,4})?
    

    特别具备属性值的XML大概HTML标签

    本条职能和方面的要命相像,然而它同意你合作的价签内部有属性值,举个例子你能够轻易相配<div id=”header”>

    function get_tag( $attr, $value, $xml, $tag=null ) { 
     if( is_null($tag) ) 
      $tag = 'w+'; 
     else 
      $tag = preg_quote($tag); 
    
     $attr = preg_quote($attr); 
     $value = preg_quote($value); 
    
     $tag_regex = "/<(".$tag.")[^>]*$attrs*=s*". 
            "(['"])$value\2[^>]*>(.*?)</\1>/" 
    
     preg_match_all($tag_regex, 
             $xml, 
             $matches, 
             PREG_PATTERN_ORDER); 
    
     return $matches[3]; 
    }
    

    手提式有线电话机号码正则表明式

    正则验证手提式有线电话机号,忽歌后边的0,支持130-139,150-159。忽视前边0之后推断它是12人的。

    cloeft的正则:

     /^0*(13|15)d{9}$/ 
    

    ^0*匹配掉开端大肆数量的0。

    出于手提式有线话机号码是13无节制数字9位,和15即兴数字9位,所以可以用(13|15卡塔尔(قطر‎d{9}匹配。

    测量检验代码如下:

     function testReg(reg,str){ 
    
        return reg.test(str); 
    
       } 
    
       var reg = /^0*(13|15)d{9}$/; 
    
       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 />'); 
    

    相配十一进制颜色值

    web开荒者的另二个交相辉映的工具,它同意你协作和评释十五进制颜色值.

    $string = "#555555"; 
    if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $string)) { 
    echo "example 6 successful."; 
    }
    

    运用正则表明式完成删除字符串中的空格:

    发源:请问js中有未有去掉空格的函数

    代码以至测验代码如下:

     <script type="text/javascript"> 
    
       //删除字符串两侧的空白字符。 
    
       function trim(str){ 
    
        return str.replace(/^s+|s+$/g,''); 
    
       } 
    
       //删除字符串左侧的空白字符。 
    
       function ltrim(str){ 
    
        return str.replace(/^s+/g,''); 
    
       } 
    
       //删除字符串右侧的空白字符。 
    
       function rtrim(str){ 
    
        return str.replace(/s+$/g,''); 
    
       } 
    
       //以下为测试代码 
    
       var trimTest = " 123456789 ";
    
      //前后各有一个空格。 
    
       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> 
    

    测量试验的结果如下:

     length:11
    
       ltrim length:10
    
       rtrim length:10
    
       trim length:9 
    

    检索页面 title

    这段代码方便搜索和打字与印刷 网页 <title> 和</title> 之间的从头到尾的经过

    $fp = fopen("http://www.catswhocode.com/blog","r"); 
    while (!feof($fp) ){ 
      $page .= fgets($fp, 4096); 
    } 
    
    $titre = eregi("<title>(.*)</title>",$page,$regs); 
    echo $regs[1]; 
    fclose($fp);
    

    节制文本框只好输入数字和小数点等等

    来自:文本框输入约束的主题材料????

    只可以输入数字和小数点

     var reg = /^d*.?d{0,2}$/ 
    

    初步有几个数字,中间有0个也许多个小数点,结尾有0到2个数字。

    只可以输入小写的斯洛伐克语字母和小数点,和冒号,正面与反面斜杠(:./)

     var reg = /[a-z./\:]+/; 
    

    a-z包罗了小写的Republika Hrvatska语字母,.是小数点,/和\分别是反正面与反面斜线,最终是冒号。整个组成多个字符集和代码任一均可,最终在丰硕+,1要么四个。

    解释 Apache 日志

    绝大好多网址选取的都以名牌的Apache服务器,即使您的网址也是,那么使用PHP正则表明式拆解深入分析apache 服务器日志 如何?

    //Logs: Apache web server 
    //Successful hits to HTML files only. Useful for counting the number of page views. 
    '^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$' 
    
    //Logs: Apache web server 
    //404 errors only 
    '^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$'
    

    交替小数点前内容为钦点内容

    出自:求一正则表明式!

    请问 怎么把那么些字符串的小数点前边的字符替换为本身自定义的字符串啊?
    例如:infomarket.php?id=197 替换为 test.php?id=197
    相应能够把第三个点“.”以前的具有单词字符替换为test就足以了。小编写的正则如下:

     <script type="text/javascript"> 
    
       var str = "infomarket.php?id=197"; 
    
       var reg = /^w*/ig; 
    
       //匹配字符串开头的任意个单词字符 
    
       str = str.replace(reg,'test'); 
    
       document.write(str); 
    
       </script> 
    

    原帖的多少复杂,没太看精通。

    选择智能引号替代双引号

    一旦您是叁个印制爱好者,你将赏识那一个允许用智能引号替代双引号的正则表明式,那一个正则被WOMuranoDPRESS在其剧情上接纳

    preg_replace('B"b([^"x84x93x94rn]+)b"B', '?1?', $text);
    

    只极度普通话的正则表明式

    发源:关于上传的时候,只好采取汉语名称的图片(是还是不是能够用toASCII方法吧?)

    前二日看的《JavaScript开采王》里刚刚有汉语的unicode范围,正则如下:

     /[u4E00-u9FA5uf900-ufa2d]/ 
    

    写了三个简短的测量检验,会把具备的华语替换来“哦”。

     <script type="text/javascript"> 
    
       var str = "有中文?and English."; 
    
       var reg = /[u4E00-u9FA5uf900-ufa2d]/ig; 
    
       str = str.replace(reg,'哦'); 
    
       document.write(str); 
    
       </script> 
    

    视察密码的复杂度

    那几个正则表明式将检验输入的从头到尾的经过是或不是含有6个或越多字母,数字,下划线和连字符. 输入必得含有最少叁个大写字母,三个小写字母和贰个数字

    'A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z'
    

    回到字符串的中文字符个数

    来自:有没回来粤语字符字节的函数!

    诚如的字符长度对粤语和西班牙语都是不分别的如JS里的length,那么哪些回到字符串中中文字符的个数呢?guoshuang先生在原帖中提交了减轻方案,小编又没看懂……

    然则自身要好也想到了一个主意:先去掉非中文字符,再回去length属性。函数以至测量检验代码如下:

     <script type="text/javascript"> 
    
       function cLength(str){ 
    
        var reg = /[^u4E00-u9FA5uf900-ufa2d]/g; 
    
        //匹配非中文的正则表达式 
    
        var temp = str.replace(reg,''); 
    
        return temp.length; 
    
       } 
    
       var str = "中文123"; 
    
       document.write(str.length+'<br />'); 
    
       document.write(cLength(str)); 
    
       </script> 
    

    结果:

     5
    
       2 
    

    普通话五个,数字四个,正确。

    上面包车型地铁测验也不错。

     var str = "中文123tets@#!#%$#[][{}"; 
    
       document.write(str.length+'<br />'); 
    
       document.write(cLength(str)); 
    

    WordPress: 使用正则取得帖子上的图纸

    自己通晓许四人是WO宝马X3DPRESS的使用者,你大概会赏识何况愿意利用 这些从帖子的内容搜索下来的图像代码。使用这些代码在您的BLOG只必要复制上边代码到您的有个别文件里

    <?php if (have_posts()) : ?> 
    <?php while (have_posts()) : the_post(); ?> 
    
    <?php 
    $szPostContent = $post->post_content; 
    $szSearchPattern = '~<img [^>]* />~'; 
    
    // Run preg_match_all to grab all the images and save the results in $aPics 
    preg_match_all( $szSearchPattern, $szPostContent, $aPics ); 
    
    // Check to see if we have at least 1 image 
    $iNumberOfPics = count($aPics[0]); 
    
    if ( $iNumberOfPics > 0 ) { 
       // Now here you would do whatever you need to do with the images 
       // For this example the images are just displayed 
       for ( $i=0; $i < $iNumberOfPics ; $i++ ) { 
         echo $aPics[0][$i]; 
       }; 
    }; 
    
    endwhile; 
    endif; 
    ?>
    

    正则表明式得到相配 IP地址前三段

    出自:怎么样用正则取IP前3段

    192.168.118.101,192.168.118.72, 192.168.118.1都替换来:192.168.118

    只要相配掉最终一段并且替换为空字符串就行了,正则如下:

     /.d{1,3}$/ 
    

    同盟结尾的.n,.nn恐怕.nnn。

    测量检验代码如下:

     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 />'); 
    

    平时的有,这么些帖子里有贰个表明IP地址的措施:求核查MAC地址的正则表明例子

    自动生成笑颜图案

    被WordPress使用的另二个情势, 这段代码可令你把图像自动转变三个笑貌符号

    $texte='A text with a smiley '; 
    echo str_replace(':-)','<img src="smileys/souriant.png">',$texte);
    

    相配 <ul>与<ul>之间的开始和结果

    来自:请教个正则的小标题吗
    <ul>safsf<ul>safsf</ul><ul>safsf</ul></ul>

    用正则能够取得 <ul>起到下个<ul> 之间的内容。

    正则如下:

     /<ul>[sS]+?<ul>/i 
    

    第一相称两边的ul标签,中间的[sS]+?能够包容几个或许三个随机字符,应当要非贪婪,不然会相称<ul>safsf<ul>safsf</ul><ul>。

    移除图片的链接

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <?php 
      $str = ' 
        <a href="http://www.jobbole.com/">jobbole</a>其他字符 
        <a href="http://www.sohu.com/">sohu</a> 
        <a href="http://www.sohu.com/"><img src="http://www.fashion-press.net/img/news/3176/mot_06.jpg" /></a> 
        <br>'; 
    
      //echo preg_replace("/(<a.*?>)(<img.*?>)(</a>)/", '$2', $str);  
      echo preg_replace("/(<a.*?>)(<img.*?>)(</a>)/", '2', $str);  
    ?>
    

    上述正是十二个超实用的php正则表明式,希望对大家的上学抱有助于。

    用正则表明式获得文件名

    来源:C:06.jpg

    c:imagestupian06.jpg

    或然是向来在盘符根目录下,也说不佳在一些层目录下,供给替换来只剩文件名。

    xlez的正则如下:

     /[^\/]*[\/]+/g 
    

    首先相配非左右斜线字符0或两个,然后是反正斜线二个要么多个。形如“xxx/”只怕“xxx”或者“/”或者“”

    函数甚至测验代码:

     <script type="text/javascript"> 
    
       function getFileName(str){ 
    
        var reg = /[^\/]*[\/]+/g; 
    
        //xxx或者是xxx/ 
    
        str = str.replace(reg,''); 
    
        return str; 
    
       } 
    
       var str = "c:\images\tupian\006.jpg"; 
    
       document.write(getFileName(str)+'<br />'); 
    
       var str2 = "c:/images/tupian/test2.jpg"; 
    
       document.write(getFileName(str2)); 
    
       </script> 
    

    注意,内需转义。

    相对路线变相对路径

    源于:研究三个正则

    将<IMG height="120" width="800" src=" height="120" width="800" src="/image/somepic.gif">。

    此中网站恐怕改换,比如

    cloudchen的正则:

     /http://[^/]+/ 
    

    首先是

    测验代码如下:

     <script type="text/javascript"> 
    
       var str = '<IMG height="120" width="800" 
    
      src="http://23.123.22.12/image/somepic.gif">'; 
    
       var reg = /http://[^/]+/; 
    
       str = str.replace(reg,""); 
    
       alert(str) 
    
       </script> 
    

    客商名正则

    来源:求正则,急急呀!!

    用于客户名注册,,客户名只 能用 粤语、保加坎Pina斯语、数字、下划线、4-14个字符。

    hansir和解决方案弄成正则:

     /^[u4E00-u9FA5uf900-ufa2dw]{4,16}$/ 
    

    汉语字符或许单词字符,4到16个。完成4到16结缘到正则里的主要性正是最初^和终止$,那就相当于一体字符串只好有那几个相配的剧情,不能有多余的。

    函数和测验代码如下:

     <script type="text/javascript"> 
    
       function isEmail(str){ 
    
        var reg = /^[u4E00-u9FA5uf900-ufa2dw]{4,16}$/; 
    
         return reg.test(str); 
    
       } 
    
       var str = '超级无敌用户名regExp'; 
    
       var str2 = '捣乱的@'; 
    
       var str3 = '太短' 
    
       var str4 = '太长longlonglonglonglonglonglonglong' 
    
       document.write(isEmail(str)+'<br />'); 
    
       document.write(isEmail(str2)+'<br />'); 
    
       document.write(isEmail(str3)+'<br />'); 
    
       document.write(isEmail(str4)+'<br />'); 
    
       </script> 
    

    相配西班牙语地址

    来自:-求助- 正则难点

    平整如下:
    含蓄 "点", "字母","空格","逗号","数字",但开首和最终不能是除字母外任何字符。

    [.a-zA-Zs,0-9]那几个字符集就兑现了假名,空格,逗号和数字。最后正则如下:

     /^[a-zA-Z][.a-zA-Zs,0-9]*?[a-zA-Z]+$/ 
    

    始于必需有字母,甘休也必需是一个之上字母。测量检验代码如下:

     <script type="text/javascript"> 
    
       function testReg(reg,str){ 
    
        return reg.test(str); 
    
       } 
    
       var reg = /^[a-zA-Z][.a-zA-Zs,0-9]*?[a-zA-Z]+$/; 
    
       var str = 'No.8,ChangAn Street,BeiJing,China'; 
    
       var str2 = '8.No,ChangAn Street,BeiJing,China'; 
    
       var str3 = 'No.8,ChangAn Street,BeiJing,China88'; 
    
       document.write(testReg(reg,str)+'<br />') 
    
       document.write(testReg(reg,str2)+'<br />') 
    
       document.write(testReg(reg,str3)+'<br />') 
    
       </script> 
    

    正则相配价格

    根源:为啥这几个正则不起功效啊?急啊?

    价钱的格式应该如下:

    始于数字若干位,也有多少个小数点,小数点后边可以有两位数字。hansir给出的呼应正则如下:

     /^(d*.d{0,2}|d+).*$/ 
    

    hansir给出的测量检验代码如下:

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    
       <html xmlns="http://www.w3.org/1999/xhtml"> 
    
       <head> 
    
       <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    
       <title>无标题文档</title> 
    
       <script type="text/javascript"> 
    
       function checkPrice(me){ 
    
        if(!(/^(?:d+|d+.d{0,2})$/.test(me.value))){ 
    
        me.value = me.value.replace(/^(d*.d{0,2}|d+).*$/,'$1'); 
    
        } 
    
       } 
    
       </script> 
    
       </head> 
    
       <body> 
    
       <input type="text" onkeyup="checkPrice(this);"/> 
    
       </body> 
    
       </html> 
    

    居民身份证编号的相称

    源于:关方岚则的,大家帮扶持,急,在线等

    身份ID号码能够是13个人照旧是二十一个人,此中最终一人能够是X。其余全都以数字,正则如下:

     /^(d{14}|d{17})(d|[xX])$/ 
    

    初步是15人照旧十七人数字,结尾能够是数字仍然为x大概是X。

    测验代码如下:

     <script type="text/javascript"> 
    
       function testReg(reg,str){ 
    
        return reg.test(str); 
    
       } 
    
       var reg = /^(d{14}|d{17})(d|[xX])$/; 
    
       var str = '123456789012345';//15位 
    
       var str2 = '123456789012345678';//18位 
    
       var str3 = '12345678901234567X';//最后一位是X 
    
       var str4 = '1234';//位数不对 
    
       document.write(testReg(reg,str)+'<br />'); 
    
       document.write(testReg(reg,str2)+'<br />'); 
    
       document.write(testReg(reg,str3)+'<br />'); 
    
       document.write(testReg(reg,str4)+'<br />'); 
    
       </script> 
    

    务求文本有钦定行数

    来源:[求助]求一句正则表明式的写法

    匹配起码两行的字符串,每行都为非空字符。

    假定相配到[nr]就意味着有换行了,再保障换行的两段都不是空字符就足以了。正则如下:

     /S+?[nr]S+?/i 
    

    这些正则的施用应该是用在textarea里,假如是之类须求:能够支撑具备字符,中间可带空格,能够归纳法语、数字、汉语、标点

    那样的话,只要本着空格再改一下就行了。(遵照非空的要求,下面有无法合营“字符+空格+换行+字符”的字符串)。改革如下:

     /S+?s*?[nr]s*?S+?/i 
    

    单词首字母大写

    来源:求个正则,管理波兰语单词或词组的

    每单词首字大写,别的小写。如blue idea转变为Blue Idea,BLUE IDEA也转移为Blue Idea

    cloeft的正则:

     /b(w)|s(w)/g 
    

    所谓“首字母”包含三种情形:第一种是境界(最早卡塔尔(قطر‎的单词字符,一种是空格之后的新单词的首先个假名。测量试验代码如下:

     <script type="text/javascript"> 
    
       function replaceReg(reg,str){ 
    
        str = str.toLowerCase(); 
    
        return str.replace(reg,function(m){return m.toUpperCase()}) 
    
       } 
    
       var reg = /b(w)|s(w)/g; 
    
       var str = 'blue idea'; 
    
       var str2 = 'BLUE IDEA'; 
    
       var str3 = 'Test n str is no good!'; 
    
       var str4 = 'final test'; 
    
       document.write(replaceReg(reg,str)+'<br />'); 
    
       document.write(replaceReg(reg,str2)+'<br />'); 
    
       document.write(replaceReg(reg,str3)+'<br />'); 
    
       document.write(replaceReg(reg,str4)+'<br />'); 
    
       </script> 
    

    正则验证日期格式

    出自:yyyy-mm-dd的正则怎么着写啊?

    yyyy-mm-dd格式

    正则如下:

     /^d{4}-d{1,2}-d{1,2}$/ 
    

    4位数字,横线,1还是2位数字,再横线,最后又是1或然2位数字。

    测验代码如下:

     <script type="text/javascript"> 
    
       function testReg(reg,str){ 
    
        return reg.test(str); 
    
       } 
    
       var reg = /^d{4}-d{1,2}-d{1,2}$/; 
    
       var str = '2008-8-8'; 
    
       var str2 = '2008-08-08'; 
    
       var str3 = '08-08-2008'; 
    
       var str4 = '2008 08 08'; 
    
       document.write(testReg(reg,str)+'<br />'); 
    
       document.write(testReg(reg,str2)+'<br />'); 
    
       document.write(testReg(reg,str3)+'<br />'); 
    
       document.write(testReg(reg,str4)+'<br />'); 
    
       </script> 
    

    其次种格式:来源:求一正则表明式
    yyyy-mm-dd

    yyyy/mm/dd

    用“或”简单地改正一下就能够了。

     /^d{4}(-|/)d{1,2}(-|/)d{1,2}$/ 
    

    去掉文件的后缀名

    来自:求叁个正则

    www.abc.com/dc/fda.asp变为www.abc.com/dc/fda

    即使文件后缀已知的话那一个难点就极其轻便了,正则如下:

     /.asp$/ 
    

    协作最后的.asp而已,测量试验代码如下:

     <script type="text/javascript"> 
    
       function delAspExtension(str){ 
    
        var reg = /.asp$/; 
    
        return str.replace(reg,''); 
    
       } 
    
       var str = 'www.abc.com/dc/fda.asp'; 
    
       document.write(delAspExtension(str)+'<br />'); 
    
       </script> 
    

    若果文件名未知的话就用这几个正则:/.w+$/,测量试验代码如下:

     <script type="text/javascript"> 
    
       function delExtension(str){ 
    
        var reg = /.w+$/; 
    
        return str.replace(reg,''); 
    
       } 
    
       var str = 'example.com/dc/fda.asp'; 
    
       document.write(delExtension(str)+'<br />'); 
    
       var str2 = 'test/regular/fda.do'; 
    
       document.write(delExtension(str2)+'<br />'); 
    
       var str3 = 'example.com/dc/fda.strange_extension'; 
    
       document.write(delExtension(str3)+'<br />'); 
    
       </script> 
    

    表达邮箱的正则表明式

    来源:找javascript写的表单检查代码!

    fuchangxi的正则:

     /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ 
    

    初叶必需是几个恐怕多少个单词字符也许是-,加上@,然后又是三个仍旧八个单词字符只怕是-。然后是点“.”和单词字符和-的组合,能够有叁个也许三个结合。

     <script type="text/javascript"> 
    
       function isEmail(str){ 
    
        var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; 
    
        return reg.test(str); 
    
       } 
    
       var str = 'test@hotmail.com'; 
    
       document.write(isEmail(str)+'<br />'); 
    
       var str2 = 'test@sima.vip.com'; 
    
       document.write(isEmail(str2)+'<br />'); 
    
       var str3 = 'te-st@qq.com.cn'; 
    
       document.write(isEmail(str3)+'<br />'); 
    
       var str4 = 'te_st@sima.vip.com'; 
    
       document.write(isEmail(str4)+'<br />'); 
    
       var str5 = 'te.._st@sima.vip.com'; 
    
       document.write(isEmail(str5)+'<br />'); 
    
       </script> 
    

    本人不太驾驭邮箱的切切实实法规。以为那个正则比较轻巧,EMAIL校验 正则 切磋 求解 里有相比详细的邮箱正则商量。

    相称源代码中的链接

    来源:正则

    可以知道相称HTML代码中链接的正则。

    原帖正则:

    /<a href=".+?">.+?</a>/g 
    

    倍感有些严厉,首先要<a href="".+?">有,何况href属性能够是三个要么两个除换行外自便字符(非贪婪State of Qatar。前面是.+?</a>,三个要么五个除换行外任意字符(非贪婪),再加上得了标签。

    有个问题,假若a的开头标签最终有空格,也许除了href还大概有别的性质的话,下面的正则就无法相称这几个链接了。

    例如:

    <a href="asdfs" >……多了个空格。

    <a id="xx" href=""asdfs">……前面有总体性。

    ……

    重写正则:

    /<as(s*w*?=".+?")*(s*href=".+?")(s*w*?=".+?")*s*>[sS]*?</a>/ 
    

    思路如下:首先要有<a和三个空格。/<as/

    第一个(s*w*?=".+?")*

    能够相配贰个属性,属性前边也可以有可能还未剩余的空格,用s*协作;属性名料定是单词字符,用w*?相配;=".+?"就是相配属性值了非换行字符若干个;整个括号外面加个*意味着大概有私下四个本性。

    (s*href=".+?")

    匹配href,它也是贰脾品质,所以要是把上面子正则表明式中的w修改为href=就行了。

    (s*w*?=".+?")*再一次第一身形正则表明式,再一次接受大伍个属性。

    s*>,属性最终再增多若干个空格和>。

    [sS]*?,链接的文字,也许有别的字符组成,若干个,非贪婪。

    </a>最后是得了标签。

    补充:属性名和=之间,以至=和属性值之间也也可能有空格。所以要再增加多少个s*。

    聊到底的实例代码如下:

     <script type="text/javascript"> 
    
       function findLinks(str){ 
    
        var reg = /<as(s*w*?s*=s*".+?")*(s*hrefs*=s*".+?")(s*w*?s*=s*".+?") 
    
       *s*>[sS]*?</a>/g; 
    
        var arr = str.match(reg); 
    
        for(var i=0;i<arr.length;i++){ 
    
        //alert(arr[i]); 
    
        document.write('link:'+arr[i]+'<br />'); 
    
        } 
    
       } 
    
       var str = '<p>测试链接:<a id = "test" href="http://bbs.blueidea.com" title="无敌">经典论坛 
    
       </a></p><a? href = "http://www.blueidea.com/"? >蓝色理想</a>'; 
    
       var arr = findLinks(str); 
    
       </script> 
    

    会把装有的链接在页面一贯突显出来。注意,

    本帖遗留难点:如何实践从右到左的合营。貌似 JS 或者 VBS 并未有提供这些成效 2 JS 或者 VBS 不支持 后行断言。。用怎么样措施达成这一个成效。

    相配链接的文字

    源于:求一正则?

    代码:<a href="#>这里要保留</a>,只保留链接的文件内容,标签音讯删掉。

    前方写过三个匹配链接的正则:

     /<as(s*w*?=".+?")*(s*href=".+?")(s*w*?=".+?")*s*>[sS]*?</a>/ 
    

    但是大家需求捕获的是文字内容,所以必要做肯定的改变。第一步便是在享有的括号内都增添?:表示不抓获。第二步就是再多加一个括号放在[sS]*?两边,那样就能够捕获到链接的文字内容了。最终正则如下:

     /<as(?:s*w*?s*=s*".+?")*(?:s*hrefs*=s*".+?")(?:s*w*?s*=s*".+?")*s*>([sS]*?)</a>/ 
    

    测验代码如下:

     <script type="text/javascript"> 
    
       function anchorText(str){ 
    
        var reg =/<as(?:s*w*?s*=s*".+?")*(?:s*hrefs*=s*".+?")(?:s*w*?s*=s*".+?")*s*> 
    
    
    
       ([sS]*?)</a>/; 
    
        str = str.replace(reg,'$1'); 
    
        return str; 
    
       } 
    
       var str = '<a id = "test" href="http://bbs.blueidea.com" title="无敌">经典论坛</a>'; 
    
       document.write(anchorText(str)); 
    
       </script> 
    

    正则判别标签是还是不是关闭

    发源:求助 超难!正则表明式怎么样推断多个标签是或不是关闭

    举例:<img xxx=”xxx” 就是未有关闭的竹签;

    <p>p的内容,相像也是没关掉的竹签。

    从简单的正则最初,先匹配起先标签

     /<[a-z]+/i 
    

    再加上若干性子:

     /<[a-z]+(s*w*?s*=s*".+?")*/i 
    

    下边就到关键点了,标签的密封。标签也许有三种方法闭合,<img xxx=”xxx” />

    或者是<p>xxx </p>。

    (s*/>)

    相配img类的收尾,即/>。

    (s*?>[sS]*?</1>)

    匹配p类标签的结束标签。>是实际标签末尾,之后是标签内容若干个随机字符,最后的</1>正是实现标签了。

    增加二个或就能够缓和了,最后的一体化正则表明式:

    任何正则:

    /<([a-z]+)(s*w*?s*=s*".+?")*(s*?>[sS]*?</1>|s*/>)/i 
    

    拿这些正则,只要相称到了就表示闭合,没相配到则从未关闭。可是未有思量相符标签嵌套的难点,比方

    <div>aaaaaa<div>test</div>

    也被判断为合格,能够通过把最终的格外p类停止标签写成子正则表明式,并且修改为非贪心,然后在拾贰分结果中检查是或不是成对。正则如下:

     /<([a-z]+)(s*w*?s*=s*".+?")*(s*?>[sS]*?(</1>)+|s*/>)/i 
    

    用正则得到钦命标签的内容

    来自:求一正则

    犹如下代码:

     <channel>
    
         <title>蓝色理想</title>
    
       </channel>
    
       <item>
    
         <title>界面设计测试规范</title>
    
       </item>
    
       <item>
    
           <title>《古典写实美女》漫画教程</title>
    
       </item>
    
       <item>
    
           <title>安远――消失的光年</title>
    
       </item>
    
       <item>
    
           <title>asp.net 2.0多语言网站解决方案</title>
    
       </item> 
    

    务求相配item里的title而不相配channel里的title。

    中央正则:

     /<title>[sS]*?</title>/gi 
    

    首先是title标签,内容为私自字符若干个,然后是title甘休标签。那些正则已经能相称到独具的title标签。

    率先,作者回顾地改良了一下原正则:

     /<title>[^<>]*?</title>/gi, 
    

    因为title里面不该再嵌有别的标签,那些正则相疑似非凡全体标题标内容,最终再加上不去相称channel中的title。整个正则如下:

     /<title>[^<>]*?</title>(?!s*</channel>)/gi 
    

    (?!s*</channel>卡塔尔国表示要相配字符串的末端不可能跟着若干个空格和一个channel的结束标签。

    原帖里有很有益于的测量检验工具,这里就不给测验代码了。

    正则判断是或不是为数字与字母的交集

    源头:关彭三源则

    无法小于十贰位,且必得为字母和数字的搅拌。

    验证字符串包括数字大约,验证字符串包涵字母也简要,验证字符串不含有其他字符也大约,能够用那七个正则分别检查贰遍字符串,逻辑运算出终极结果。

    而是怎能把这几个成效写进三个正则表明式里吧?那么些标题真有一些困难。

    下面是lexrus的正则:

     /^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig 
    

    思路十三分的永不磨灭啊:

    [a-z]+(?=[0-9])

    字母开始,前面总得紧跟着数字。

    [0-9]+(?=[a-z]

    数字开端,后边总得紧跟着字母。

    [a-z0-9]+

    前面包车型的士字符只假如数字依然字母就可以了。经过测量试验,开采倒霉使,123dd会被识别为不合规,dd123则为法定,可知“数字初步,紧跟字母”的正则未有起功效。测验代码如下:

     <script type="text/javascript"> 
    
       function istrue(str){ 
    
       var reg=/^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig; 
    
       return reg.test(str); 
    
       } 
    
       var str? = 'AaBc'; 
    
       var str2 = 'aaa123'; 
    
       var str3 = '123dd'; 
    
       var str4 = '1230923403982'; 
    
       document.write(istrue(str)+'<br />'); 
    
       document.write(istrue(str2)+'<br />'); 
    
       document.write(istrue(str3)+'<br />'); 
    
       document.write(istrue(str4)+'<br />'); 
    
       </script> 
    

    结果为:

    false,true,false,false

    结果中的第多少个,将'123dd'判别为非官方是荒唐的。刚初步感觉是g的主题材料,去掉了照旧不佳使。应该是浏览器bug,笔者觉着lexrus的正则是科学的,可能是浏览器无法管理或”|”的两侧都蕴含正向预查(?=卡塔尔(قطر‎。

    校订现在的正则如下:

     /^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i 
    

    野趣和上边差非常的少,可是还未有动用正向预查,测量检验代码如下:

     <script type="text/javascript"> 
    
       function istrue(str){ 
    
       var reg=/^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i; 
    
       return reg.test(str); 
    
       } 
    
       var str? = 'AaBc'; 
    
       var str2 = 'aaa123'; 
    
       var str3 = '123dd'; 
    
       var str4 = '1230923403982'; 
    
       document.write(istrue(str)+'<br />'); 
    
       document.write(istrue(str2)+'<br />'); 
    
       document.write(istrue(str3)+'<br />'); 
    
       document.write(istrue(str4)+'<br />'); 
    
       </script> 
    

    结果为

    false,true,true,false

    正确。

    空格与波兰语同期存在

    根源:正则难题请指教啊!

    相称Republika Hrvatska语以致空格,必要必需既有瑞典语字母又有空格。

    本条思路和方面包车型客车多数,只要把数字改成空格就能够了。正则如下:

     /^(([a-z]+s+)|(s+[a-z]+))[a-zs]*$/i 
    

    德文开首加空格,只怕是空格初阶加阿拉伯语,前边能够是西班牙语大概空格。测量试验代码如下:

     <script type="text/javascript"> 
    
       function istrue(str){ 
    
       var reg=/^(([a-z]+s+)|(s+[a-z]+))[a-zs]*$/i; 
    
       return reg.test(str); 
    
       } 
    
       var str? = 'asdf'; 
    
       var str2 = 'sadf sdf'; 
    
       var str3 = 'asdf '; 
    
       document.write(istrue(str)+'<br />'); 
    
       document.write(istrue(str2)+'<br />'); 
    
       document.write(istrue(str3)+'<br />'); 
    
       </script> 
    

    应用这一个思路也足以完成日文空格罗马尼亚语,朝鲜语单词多于五个的同盟。相仿,也足以把英语字母换到单词字符w。

    显示只怕封存正则表达式匹配的部分内容

    好似下电话号码:

    13588888333
    13658447322
    13558885354
    13587774654
    13854554786

    务求,须要只异常135开头的电话机,然而相称结果只保留135末尾的数字。

    出于JavaScript里的正则不协理(?=xx卡塔尔国xxx的形式,只协助xxx(?=xx卡塔尔(قطر‎的格局。所以只可以将135末尾的剧情作为三个子正则表明式相配的内容,然后再在末端援用。

     Carl给出的函数如下: 
    
       function f(phoneNumber) { 
    
         var pattern = /^(135)(d{8})$/; 
    
           if(pattern.test(phoneNumber)) 
    
        return phoneNumber.replace(pattern,"$2"); 
    
         else 
    
        return "不是135打头的手机号码!"; 
    
       } 
    
       /^(135)(d{8})$/ 
    

    正则中,135作为开始表示第贰个子正则表达式,第三个括号内的子正则表明式则卓越后边的8个数字,然后在replace中选用$2就足以引用那个子正则表明式相称的剧情了。测验代码如下:

     <script type="text/javascript"> 
    
       function f(phoneNumber) { 
    
         var pattern = /^(135)(d{8})$/; 
    
         if(pattern.test(phoneNumber)) 
    
        return phoneNumber.replace(pattern,"$2"); 
    
         else 
    
        return "不是135打头的手机号码!"; 
    
       } 
    
       var arr = new Array( 
    
         "13588888333", 
    
         "13658447322", 
    
         "13558885354", 
    
         "13587774654", 
    
         "13854554786" 
    
       ); 
    
       for(var i = 0; i < arr.length; i++) 
    
         document.write(f(arr[i])+'<br />'); 
    
       </script> 
    

    正则表明式替换变量

    根源:求教正则

    有一个数组:

    var _A = ['A','B','C','D'];

    有贰个有“变量”的字符串。

    var _B = '<ul><li>$0$</li><li>$1$</li><li>$2$</li><li>$3$</li></ul>';

    实属变量,其实只是字符串中的特殊字符,举例$0$,就称那么些为伪变量吧。

    最终的渴求就是运用正则取得下边那样二个字符串:

    _C = '<ul><li>A</li><li>B</li><li>C</li><li>D</li></ul>';

    IamUE给出了代码:

     <script type="text/javascript"> 
    
       var _A = ['A','B','C','D']; 
    
       var _B = '<ul><li>$0$</li><li>$1$</li><li>$2$</li><li>$3$</li></ul>'; 
    
       var reg=/$d+$/ig; 
    
       C=_B.replace(reg,function($1){ 
    
       var indexnum=$1.replace(/$/ig,""); 
    
       if (indexnum<_A.length) 
    
       {return _A[indexnum];} 
    
       else{return ""} 
    
       }); 
    
       alert(C); 
    
       </script> 
    

    代码剖判:看见代码之后认为有个别晕,首先,正则reg中从不此外的括号,应该是未曾捕获内容的,那么前面怎么又利用$1了引用了吗?通过alert测试,开掘它是整套正则匹配的内容,何况不自然要编慕与著述$1,可以写为$0,以至是写为x都无妨,它总是整个相配。

    第一次,$1匹配到_B中的“$0$”,佚名函数上校它的$去掉,造成了0,检查是否越界之后,用这一个0作为下标去拜谒数组_A。

    是因为正则reg定义了g属性,所以会一而再延续替换$1$、$2$等等。步骤都和位置同样。

    正则替换钦点属性中的文本

    源于:如何用正则来寻觅替换?

    犹如下代码:

    <td align="center"><img src="../photo/ccg/thumbnails/O'Malley's West_jpg.gif" border="0" onClick="MM_openBrWindow('../photo/ccg/pages/O'Malley's West_jpg.htm','BE','width=386,height=306')"><br>
    O'Malley's West</td>

    渴求将具有onclick属性中的’替换来’,也正是将单引号转义。

    首先,需求相称onclick属性:

     /onclicks*=s*".+?"/ig 
    

    然后再将兼具的’都替换来’就足以了。

    将阿拉伯数字替换为汉语大写格局

    来源:正则难点

    将123替换到壹贰叁。

    一经般配八个数字就足以了,测量检验代码如下(倘若展现为乱码就调解一下浏览器的字符编码):

     function replaceReg(reg,str){ 
    
        return str.replace(reg,function(m){return arr[m];}) 
    
       } 
    
       arr=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); 
    
       var reg = /d/g; 
    
       var str = '13889294444'; 
    
       var str2 = '12889293333'; 
    
       var str3 = '23445567'; 
    
       document.write(replaceReg(reg,str)+'<br />'); 
    
       document.write(replaceReg(reg,str2)+'<br />'); 
    
       document.write(replaceReg(reg,str3)+'<br />'); 
    

    退换文本中的 U路虎极光L为链接

    源于:求一链接替换正则

    将一个顾客输入的一段文字中的url替换来能够点击的link地址。举例: [url]]

    或<a href=". blueidea.com</a>.

    其一正则的重大就在于合营链接,相称之后,在两侧加上a标签和属性不是主题材料。

     /http://[w-]*(.[w-]*)+/ig 
    

    率先相称http://。

    [w-]*是大概的www和bbs等。

    .[w-]*匹配.xxx情势,至稀有二个。

    测验代码如下:

     <script type="text/javascript"> 
    
       function replaceReg(reg,str){ 
    
        return str.replace(reg,function(m){return '<a href="'+m+'">'+m+'</a>';}) 
    
       } 
    
       var reg = /http://[w-]*(.[w-]*)+/ig; 
    
       var str = '将一个用户输入的一段文字中的url替换成可以点击的link地址。
    
      测试一下:http://www.blueidea.com紧接着中文,还有http://bbs.blueidea.com 
    
      is very good!http://blueidea.com!最后在看看带.cn的:http://www.sina.com.cn呵呵。'; 
    
       document.write(replaceReg(reg,str)+'<br />'); 
    
       </script> 
    

    从 HTML代码段删除内定标签特别内容

    来源:关邹静之则的标题

    在一段代码中去除<script ...... /script>, <head>...</head>,<%.....%>等代码块

    隆的正则:

     /<(script|meta|%)[sS]*?/(script|meta|%)>/ 
    

    试了弹指间,相称如下文本不荒谬:

     <script type="text/javascript"> 
    
       我是要被删除的脚本 
    
       </script> 
    
       哎。就剩下我了。 
    

    只是,若是利用相符的正则:

     /<(script|head|%)[sS]*?/(script|head|%)>/ig 
    

    相当有嵌套的标签:

     <head> 
    
       <script type="text/javascript"> 
    
       我是要被删除的脚本 
    
       </script> 
    
       </head> 
    
       哎。就剩下我了。 
    

    实在相称的剧情是:

     <head> 
    
       <script type="text/javascript"> 
    
       我是要被删除的脚本 
    
       </script> 
    

    那是因为[sS]*?里的非贪婪变成的。能够应用JavaScript正则里的反向援用来缓慢解决这一个难题,假若初阶标签相称了head,那么截止标签也必需是head。最终的正则如下:

     /<(script|head|%)[sS]*?/1>/ig 
    

    用正则给文本分段

    根源:怎么着用正则分段落

    原代码:[title]标题一[/title]内容一232323sdfga [title]标题二[/title]内容二2232323 [title]标题三[/title]内容三2232323

    要把公文分段成如下格式:
    一、[title]标题一[/title]内容一232323sdfga
    二、[title]标题二[/title]内容二2232323
    三、[title]标题三[/title]内容三2232323

    纵然用正则相称title就能够了,所以正则比较容易

     /[title]/ig 
    

    至于起首的的汉字序号,只要多个数组就缓慢解决了,最后代码如下:

     <script type="text/javascript"> 
    
       function replaceReg(reg,str){ 
    
        var mark =0; 
    
        return str.replace(reg,function(m){mark++;return '<br />'+arr[mark]+'、'+m;}) 
    
       } 
    
       var arr = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]; 
    
       var reg = /[title]/ig; 
    
       var str = '[title]标题一[/title]内容一232323sdfga 
    
      [title]标题二[/title]内容二2232323 [title]标题三[/title]内容三2232323'; 
    
       document.write(replaceReg(reg,str)+'<br />'); 
    
       </script> 
    

    转换源代码中的标签

    来自:一个正则上的主题材料

    将代码中的HTML标签img转变为[img]url[/img]。

    /<img(?:s*w*?s*=s*".+?")*?s*srcs*=s*"(.+?)"(?:s*w*?s*=s*".+?")*s*>/ig

    这段正则和相配链接标签的正则基本等同,修正如下,标签名img,未有终结标签而是>甘休。

    测验代码如下:

     <script type="text/javascript"> 
    
       function replaceReg(reg,str){ 
    
        return str.replace(reg,'[img]$1[/img]') 
    
       } 
    
       var reg = 
    
      /<img(?:s*w*?s*=s*".+?")*?s*srcs*=s*"(.+?)"(?:s*w*?s*=s*".+?")*s*>/ig; 
    
       var str = '我就是传说中的图片了<img src="URL">哎。'; 
    
       document.write(replaceReg(reg,str)+'<br />'); 
    
       </script> 
    

    其次个是替换object代码嵌入的flash代码替换为[swf]url[/swf]。

    针对原来的小说的正则如下:

     /<object[sS]*?src=([sS]+?)(?=s)[sS]*</object>/i 
    

    设纵然享有的品质都有双引号的话正则也亟需改良。

    测量检验如下:

     <script type="text/javascript"> 
    
       function replaceReg(reg,str){ 
    
        return str.replace(reg,'[swf]$1[/swf]') 
    
       } 
    
       var reg = /<object[sS]*?src=([sS]+?)(?=s)[sS]*</object>/i; 
    
       var str = '<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 
    
      codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/
    
      swflash.cab#version=5,0,0,0 width=255 height=250><param name=movie 
    
      value=url><param name=quality value=high><embed src=url quality=high 
    
      pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?
    
      P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash 
    
      width=255 height=250></embed></object>'; 
    
       document.write(replaceReg(reg,str)+'<br />'); 
    
       </script> 
    

    给属性增加双引号

    来自:请教正则表明式高手

    给HTML标签中的属性加多双引号。

    <a href=xxx>改为:<a href="xxx">

    LeXRus的第一个正则如下:

     /(?!<w+)(s+w+)=([^>"s]+)/ig 
    

    第4个括号没看掌握,JS应该是不协理。所以自个儿大肆给删掉了,剩下的正则如下:

     /(s+w+)=([^>"s]+)/ig 
    

    率先个括号里的s+w+相称的是属性名。

    接下来是=,不用转义。

    其次个括号里的[^>"s]+相称属性值。不相配>”和空格。这里的引号不用转义。在情趣不转移的景色下,微微改了改,正则如下:

     /(s+w+)=([^>"s]+)/ig 
    

    亟需介怀的是那几个正则不相配=两侧有空格的属性,举个例子href = xxx。相相配的话就改成:

     /(s+w+)s*=s*([^>"s]+)/ig 
    

    代码:

     str=str.replace(/(?!<w+)(s+w+)=([^>"s]+)/ig,'$1="$2"'); 
    

    其间’$1=”$2”’就落到实处了给属性值增添上双引号。可是ncs提出了这一个正则替换的多少个难点,一是上边的空格难点,二是只要非标签内部有等号,且前面又偏巧有空白字符的话,它将会被误识别为属性,举个例子:

    <a href=xxx target=yyy title = asdfasf> test=sd

    里头的test=sd也会被相称。三是只要属性原本采纳了单引号,会被再包上一层双引号……

    来探视LeXRus前辈的元正则替换方法:

     str=str.replace(/(?!<w+)(s+w+)s*=s*([^>"s]+)(?=[^>]*>)/ig,'$1="$2"')
    
      .replace(/"'([^'"]+)'"/ig,'"$1"'); 
    

    先来看率先个正则:

     / (s+w+)s*=s*([^>"s]+)(?=[^>]*>)/ig 
    

    末尾新扩充的(?=[^>]*>卡塔尔意在消除平时文书中有等号被误识别为属性的主题材料:

    <a href=xxx target=yyy title = asdfasf> test=sd

    就没难题了,可是

    <a href=xxx target=yyy title = asdfasf> test=sd<tag>又贰个标签</tag>

    中的test=sd<tag>又会被识别为属性。

    自家以为改成上面包车型客车正则就没难点了:

     /(s+w+)s*=s*([^<>"s]+)(?=[^<>]*>)/ig 
    

    个别在其次个括号的字符集结和终极的反向预查的字符集结中加多了八个<。

    上面再来深入分析首个正则,

     /"'([^'"]+)'"/ig 
    

    以此正则用于相称双引号,单引号多层嵌套的情形,形似,不用转义,改革正则如下:

    /"'([^'"]*)'"/ig

    与上述同类宗旨职务就成功了。测量检验代码如下:

     <script type="text/javascript"> 
    
       function rp(str,trg){ 
    
        var reg1 = /(s+w+)s*=s*([^<>"s]+)(?=[^<>]*>)/ig 
    
        var reg2 = /"'([^'"]*)'"/ig; 
    
        str=str.replace(reg1,'$1="$2"').replace(reg2,'"$1"'); 
    
        trg.value=str; 
    
       } 
    
       </script> 
    
       <textarea id="sou" style="width:100%"> 
    
       <a href = xxx name=aaa target=_blank title='asdfasf'
    
       onclick=alert('blueidea')> asfd=asfd 
    
       </textarea> 
    
       <input type="button" onclick="rp(sou.value,sou)" value="replace"/> 
    

    原帖里LeXRus又提出了新主题素材:

    hint=i am lexrus

    如此那般的性质会有标题,不过笔者倍感不加引号的话,属性值里就不恐怕有空格,不然会被识别为多个属性了。不过总的来看最终 ncs 的回执作者就哭了:

    onclick=if(document.forms.length>0)

    这么的属性咋办?大于号会被辨感觉标签甘休……依旧分别行为与文书档案吧。补充一下,其实修补一下正则也能够消除,只要改成如下正则就可以:

     /(s+w+)s*=s*([^"s]+)(?=[^<>]*>)/ig 
    

    便是去掉第四个括号内字符集结里的<>。最终那个标题也解决。

    给 table加上tbody

    出自:通过正则表明式急速在后加上

    有多少table,不过尚未tbody。今后亟需用正则批量加上。

    相配table截至标签</table>比较容易,在前面加上三个</tbody>就能够了。
    但是,相配table的发端标签有一点点难度,因为恐怕有品质。不过早前相称过链接了,这几个也差不离。

    实例table代码如下:
    <table width="100%" border="0" cellpadding="2" cellspacing="3">
    <table width="100%">
    正则:

     /<tables(s*w*?s*=s*".+?")*?s*?>/g 
    

    优良叁个<table,在合作若干个属性,最后只要再找到>就表示标签停止。

    随后再replace一下,加上<tbody>就足以了。

    去掉标签的持有属性

    出自:正则表明式(Dreamweaver8State of Qatar

    <td style="width: 23px; height: 26px;" align="left">***</td>

    改为没有别的性质的

    <td>***</td>

    思路:非捕获相配属性,捕获相称标签,使用捕获结果替换掉字符串。正则如下:

     /(<td)s(?:s*w*?s*=s*".+?")*?s*?(>)/ 
    

    率先,td相称掉了标签,后边能够用$1引用,前面的若干性格被(?:State of Qatar相称掉,而最后相称的>则足以在末端用$2援引。

    表示代码:

    str = str.replace(reg,’$1$2’);

    正则替换特定单词

    出自:正则表明式,拒却多少个单词的输入该怎样发挥?

    务求不允许输入某多少个单词,要是回绝red,yellow,white。那个帖子届时简单,不过让自家弄明白了有些个概念。

    先是个,小心字符会集里的“或”

     /[^red|yellow|white]/ 
    

    其一正则里的保有或都一点意义都没有,等同于:

     /[^redyellowwhite]/ 
    

    情趣正是无法含有以下列出的享有字母。

    正解:

     /red|yellow|white/
    

    第一个概念:

    设若任何正则相配成功,无论子正则表明式是或不是合营成功,括号都会捕捉。比如

     /(red)|(yellow)|(white)/ 
    

    会捕捉到八个结实,固然实际上最四只也许有二个括号相配成功。然则如若有叁个格外到了,两外三个也会记录空串。

    钦点文字高亮突显

    发源:怎么着用正则把网页中的钦定的字高亮显示

    请教正则表明式:如何替换寻找结果中的关键字为高亮显示?

    备位充数一次,这一个子虚乌有 前辈已经交由了要命好的施工方案:小编一向把代码贴出来了:

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    
       "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd"> 
    
       <html xmlns="http://www.w3.org/1999/xhtml"> 
    
       <head> 
    
       <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    
       <META name="Author" content="Sheneyan" /> 
    
       <script type="text/javascript"> 
    
       function encode(s){ 
    
         return  s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/([\.*[]()$^])/g,"\$1"); 
    
       } 
    
       function decode(s){ 
    
         return  s.replace(/\([\.*[]()$^])/g,"$1").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&"); 
    
       } 
    
       function highlight(s){ 
    
         if (s.length==0){ 
    
        alert('搜索关键词未填写!'); 
    
        return false; 
    
         } 
    
         s=encode(s); 
    
         var obj=document.getElementsByTagName("body")[0]; 
    
         var t=obj.innerHTML.replace(/([^<>]*)</span>/gi,"$1"); 
    
         obj.innerHTML=t; 
    
         var cnt=loopSearch(s,obj); 
    
         t=obj.innerHTML 
    
         var r=/{searchHL}(({(?!/searchHL})|[^{])*){/searchHL}/g 
    
         t=t.replace(r,"$1"); 
    
         obj.innerHTML=t; 
    
         alert("搜索到关键词"+cnt+"处") 
    
       } 
    
       function loopSearch(s,obj){ 
    
         var cnt=0; 
    
         if (obj.nodeType==3){ 
    
        cnt=replace(s,obj); 
    
        return cnt; 
    
         } 
    
         for (var i=0,c;c=obj.childNodes[i];i++){ 
    
        if (!c.className||c.className!="highlight") 
    
        cnt+=loopSearch(s,c); 
    
         } 
    
         return cnt; 
    
       } 
    
       function replace(s,dest){ 
    
         var r=new RegExp(s,"g"); 
    
         var tm=null; 
    
         var t=dest.nodeValue; 
    
         var cnt=0; 
    
         if (tm=t.match(r)){ 
    
        cnt=tm.length; 
    
        t=t.replace(r,"{searchHL}"+decode(s)+"{/searchHL}") 
    
        dest.nodeValue=t; 
    
         } 
    
         return cnt; 
    
       } 
    
       </script> 
    
       <style type="text/css"> 
    
       .highlight{background:green;font-weight:bold;color:white;} 
    
       </style> 
    
       </head> 
    
       <body> 
    
       <form onsubmit="highlight(this.s.value);return false;"> 
    
       <p><input name="s" id="s" title="搜索内容:"/><input type="submit" value="搜索"/></p> 
    
       </form> 
    
       <div id="content"> 
    
       测试高亮的代码。很长很长的代码…………………… 
    
       </div> 
    
       </body> 
    
       </html> 
    

    除去标签

    根源:怎么着采用正则表明式去除大多数HTML标识?

    删除除了<img>、<br>、<p>之外全部的价签。荒诞不经付出代码中首要的一句:

     o.innerHTML.replace(/(</?(?!br|p|img)[^>/]*)/?>/gi,''); 
    

    刚最早没影响过来,后来才想起来,那个正则不用区分初始和停止标签。

    </?(?!br|p|img)

    非常除了保证标签外标价签的序曲标签或然是终结标签的一片段。

    [^>/]*

    匹配到>或者/就结束。

    /?>

    起头标签大概终止标签的尾声。

    错误贴

    深谙正则的帮扶看看,多个小标题 :反斜线灾荒。

    正则表达式通过变量传递后,t转义字符的意想不到表现。 :同上。


    本文由威尼斯手机平台登陆发布于最新文章,转载请注明出处:我已经编写了15个超有用的正则表达式,   5. 电话号码正则...3

    关键词: