注    册
密 码 忘记密码
保存密码         取消
注    册
密 码 忘记密码
保存密码         取消

我的日志

JS正则实例学习

分类:javascript
2007.1.6 23:29 作者:天枫 | 评论:0 | 阅读:0

<script type="text/javascript">
 
 /**
  * 验证电子邮件
  */
 
  function isValidEmail(semail){
    var re_email = /^(\w+\.?)*\w+@\w+\.\w+$/;
    return re_email.test(semail);
   }
   
   alert(isValidEmail("_e.wenk@d.com"));
 
 /**
  * 验证日期
  */
 
  function isValidDate(sdate){
    var re_date = /(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12][0-9]|3[01])\/(?:19|20\d{2})/;
    return re_date.test(sdate);
   }
  alert(isValidDate("01/05/1990"));
 
 
 /**
  * 验证信用卡号
  */
 
  function isValidMasterCard(scard){
    var re_card = /^(5[1-5]\d{2})[\s\-]?(\d{4})[\s\-]?(\d{4})[\s\-]?(\d{4})$/;
    if(re_card.test(scard)){
      var sCardNum = RegExp.$1 + RegExp.$2 + RegExp.$3 + RegExp.$4;
      return luhnCheckSum(sCardNum);
      //alert(sCardNum);
    }else{
      return false;
    }
   }
 
  function luhnCheckSum(sCardNum){
    var nj = 0;
    var no = 0;
    var bflag = true;
    
    for(var i = sCardNum.length-1;i>=0;i--){
      
      var inum = parseInt(sCardNum.charAt(i));
      if(bflag){
        nj += inum;
      }else{
       inum = inum * 2;
       if(inum > 9){
        inum = eval(inum.toString().split("").join("+")); 
       } 
       no += inum;
      }
      bflag = !bflag;
     }
     return ((nj + no ) % 10 == 0);
   }
   
   alert(isValidMasterCard("5432-1234-5678-7073"));
 
 /**
  * 去除左右得空格
  * output:(test string)
 */
 var s_str = "  test string   ";
 String.prototype.trim = function(){
   var re_reg = /^\s*(.*?)\s+$/;
   return this.replace(re_reg,"$1");
  }
 alert("(" + s_str.trim() + ")");
 
/**
 * 捕获性分组
 * output: 5678 1234
*/
 var s_Tochange = "1234 5678";
 var re_rep = /(\d{4}) (\d{4})/;
 var new_str = s_Tochange.replace(re_rep,"$2 $1");
 alert(new_str);
 
 // output: 123456789
 var s_num = "#123456789";
 var re_num = /#(\d*)/;
 re_num.test(s_num);
 alert(RegExp.$1);
 
/**
 * 候选 or
 * 去掉非法字符
 * output:this is a ** and **1 **n ****2
*/
 var s_ad = "this is a ad and ad1 adn bdbd2";
 var re_ad = /ad|bd/gi;
 var new_con = s_ad.replace(re_ad,function(oo){
   return oo.replace(/./gi,"*");
  });
 alert(new_con);
 
 /**
  * 非捕获性分组
  * output: ab$1
 */
 
 var s_f1 = "#123456789";
 var re_f1 = /#(?:\d*)/;
 alert(s_f1.replace(re_f1,"ab$1"));
 alert(RegExp.$1);
 
  /**
  * 前瞻后瞻
  */
  var s_m = "bedroom";
  var s_n = "bedding";
  var re_m = /(bed(?=.))/;
  var re_n = /(bed(?!room))/;
  alert(re_m.test(s_m));
  alert(re_n.test(s_n));
 
 /**
  * 单词边界
  */
  var s_t = "import mysql word is the last one.";
  var re_t = /^(.+?)\b/;
  re_t.test(s_t);
  alert(RegExp.$1);
/**
 * 多行模式
 */
 var s_o = "first second\nthird foruh\nfive sixth";
 var re_o = /^(\w+)/gm;
 var arr_s = s_o.match(re_o);
 alert(arr_s);
 
 var s_oo = "first second\nthird foruh\nfive sixth";
 var arrs = s_oo.split("\n");
 var re_oo = /(\w+)$/g;
 for(var i=0;i<arrs.length;i++){
   var n_oo = arrs[i].match(re_oo);
   alert(n_oo);
   
  }
 
 
 function RegExpTest(){
  var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
  if (ver >= 5.5){                 // 测试 JScript 的版本。
    var src = "The rain in Spain falls mainly in the plain.";
    var re = /\w+/g;               // 创建正则表达式模式。
    var arr;
    while ((arr = re.exec(src)) != null)
       document.write(arr.index + "-" + arr.lastIndex + "\t" + arr + "\n");
  }
  else{
    alert("请使用 JScript 的更新版本");
  }
}
RegExpTest();

/**
 * 去除HTML代码
 */ 
 var s_html = "<div class=right style=line-height: 18px;><a href=search.php?srchfrom=87000&amp;searchsubmit=yes>查看新帖</a> |<a href=digest.php>精华区</a> |<a href=member.php?action=markread>标记已读</a><a href=rss.php?auth=0 target=_blank><img src=images/common/xml.gif border=0 class=absmiddle alt=RSS 订阅全部论坛 /></a><br>共 <span class=smalltxt>1650</span> 篇主题 / <span class=smalltxt>1739</span> 篇帖子 / 今日 <span class=smalltxt>8</span> 篇帖子<br>位会员 / 欢迎新会员 <a href=viewpro.php?username=gcpayw><span class=bold>gcpayw</span></a></div>";
 String.prototype.stripHTML = function(){
   var re_str = /<(.|\s)*?>/g;
   return this.replace(re_str,"");
  }
  alert(s_html.stripHTML());
 

</script>

你可以通过这个链接引用该篇文章:http://netdomain.bokee.com/viewdiary.14478837.html

            javascrip... 上一篇

我的广告

我的搜索

文章评论

添加评论

马上抢占沙发,进行评论
昵  称:  主  页: (选填)
验证码: 

最新文章

定制广告

定制广告