zoukankan      html  css  js  c++  java
  • 如何使用正则表达式以及封装函数?

    1、正则表达式的使用方法

    (1)使用test()  方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

    var str = '我今年18岁'
    var reg = new RegExp("[0-9]{2}","g")

    reg.test(str)      //  true

    (2)使用match()  方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

    var str = '我今年18岁'
    var reg = new RegExp("[0-9]{2}","g")

    str.match(reg)   //  ["18"]

    (3)使用search()  用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置;没有检索字符串中指定的子字符串,就会返回-1

    var str = '我今年18岁'
    var reg = new RegExp("[0-9]{2}","g")

    str.search(reg)  //  3

    (4)使用replace() 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串

    var str = '我今年18岁'
    var reg = /[0-9]{2}/g

    str.replace(reg,"aaa")  //  我今年aaa岁

    (5)使用split()  用于把一个字符串分割成字符串数组

    var str = '我今年18岁'  
    var reg = /[0-9]{2}/g

    str.split(reg)  //  ["我今年", "岁"]

    (6)使用exec()  方法用于检索字符串中的正则表达式的匹配,该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

    var str = '我今年18岁'  
    var reg = /[0-9]{2}/g

    reg.exec(str)  //  ["18"]

    2、正则表达式的函数使用

     (1)是否带有小数

    function isDecimal(strValue ) {
      var objRegExp= /^d+.d+$/;
      return objRegExp.test(strValue);
    }
     
    (2)校验是否中文名称组成
    function ischina(str) {
      var reg=/^[u4E00-u9FA5]{2,4}$/; /*定义验证表达式*/
      return reg.test(str); /*进行验证*/
    }
     
    (3)校验是否全由8位数字组成
    function isStudentNo(str) {
      var reg=/^[0-9]{8}$/; /*定义验证表达式*/
      return reg.test(str); /*进行验证*/
    }
     
    (4)校验电话码格式
    function isTelCode(str) {
      var reg= /^((0d{2,3}-d{7,8})|(1[3584]d{9}))$/;
      return reg.test(str);
    }
     
    (5)校验邮件地址是否合法
    function IsEmail(str) {
      var reg=/^w+@[a-zA-Z0-9]{2,10}(?:.[a-z]{2,4}){1,3}$/;
      return reg.test(str);
    }
     
    (6)判断输入字符串是否为数字、字母、下划线组成
    function isValid(str) {
      return /^w+$/.test(str);
    }
     
    (7)判断输入字符串是否全部为字母
    function isletter (val){
      return /^[a-zA-Z]+$/.test(val)
     
    (8) 判断输入字符串是否全部为数字
    function isnum(val){
      return /^d+$/.test(val);
     
    (9)判断密码的强中弱
    function checkUserpwd(pwd1, pwd2, reg, errSpan, errSpanInfo) {
      if (pwd1 == pwd2) {
        if (reg.test(pwd1)) {//表示合法
        //合法里面 我们看强中弱
        var numCount = (/[0-9]/g).test(pwd1) ? 1 : 0;
        var lowCount = (/[a-z]/g).test(pwd1) ? 1 : 0;
        var uppCount = (/[A-Z]/g).test(pwd2) ? 1 : 0;
        switch (numCount + lowCount + uppCount) {
          case 3:
          errSpan.innerHTML = "强";
          break;
          case 2:
          errSpan.innerHTML = "中";
          break;
          default:
          errSpan.innerHTML = "弱";
          break;
         }
          return true;
      } else {
        errSpan.style.color = "red";
        errSpan.innerHTML = errSpanInfo;
        return false;
      }
    } else {
      errSpan.style.color = "red";
      errSpan.innerHTML = "两次输入的密码不相等";
      return false;
      }
    }
    (10)过滤骂人的文字
    function check(value){
      var reg = /(马化腾)|(sb)|(jb)/ig;
      //过滤骂人文字 
      //value.replace(reg,"*");
      if(reg.test(value)){
        alert("含有非法字符")
      }
    }
     
    3、举例说明
    <body>
    用户:<input type="text" id="username" placeholder="请以字母_$开头的6-10位"><span id="username_span"></span><br>
       <button id="btn">注册</button>
    </body>
    <script>
    var usernameInput = document.getElementById("username");
    var usernameSpan = document.getElementById("username_span");
    var btn = document.getElementById("btn");
    btn.onclick = function() {
      var username = usernameInput.value;
      var reg = /^[a-z_$][a-z0-9_$]{5,9}$/gi;
      if (reg.test(username)) {
      usernameSpan.innerHTML = "√";
      usernameSpan.style.color = "green";
    } else {
      usernameSpan.innerHTML = usernameInput.getAttribute("placeholder");
      usernameSpan.style.color = "red";
      }
    }
    </script>
     
  • 相关阅读:
    不知道搜索引擎对display:none和visibility:hidden是怎么个看法
    《Effective C#中文版:改善C#程序的50种方法》前言
    SEO实践之网站内部结构设计优化
    友情提示:职场修炼,参加招聘会注意事项
    CSS命名规范
    发布两款纯CSS编写的下拉菜单已测IE6,7,8,FF均可运行
    解读2010年中国九大SEO新星工作室
    南通SEO爱好者之“拿来主义”!
    轻松一刻——幽默
    大学生进行职业选择要有市场意识
  • 原文地址:https://www.cnblogs.com/lishixiang-007/p/11283248.html
Copyright © 2011-2022 走看看