正则表达式

正则表达式 用于定义一些字符串的规则,检查是否符合规则,获取字符串中符合规则的内容提取出来

test()用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合就返回true 否则就返回false

//var reg = new RegExp("a", "i");
      reg = /a/i;
      console.log(typeof reg);
      console.log(reg.test("bc"));

创建正则表达式,检查字符中是否含有a或者b,使用|是表示或者的意思 【】也是或者的意思

[ab]==a|b [a-z]表示a-z任意小写字母 [A-Z]表示大写

 reg = /[A-z]/ //表示所有字母
      reg = /a[bd]c/  //检查一个字符串是否含有abc或者adc
      reg = /[^ab]/  //除了ab

split()可以将字符串拆分为数组,默认全局拆分

这个方法中可以传递一个正则表达式作为参数,这样会根据正则表达式去拆分字符串

但是search方法只会查找第一个,没办法全局查找。

 var str = "1a2b3d4r5t6y7q8s9o";
      var result = str.split(/[a-z]/);
      console.log(result);
      str = "hello hi hello hi  abc adc  agc  afc";
      result = str.search(/a[bdf]c/); //search方法搜索符合条件的内容
      console.log(result);
      str = "1a2d3h4y5t6s7x8u9hdABCb"; //默认match只会找到第一个符合条件的内容找到以后就停止检索,
      //match 会将匹配到的内容封装到一个数组中。
      result = str.match(/[a-z]/gi); //但是我们可以设置为全局匹配模式,这样就可以匹配所有内容g 全局匹配,i忽略大小写
      console.log(result);
      //replace 将字符串中指定内容替换为新内容
      result = str.replace("a", "@"); //但是默认只替换第一个,但是用正则表达式全局替换就可以了
      result = str.replace(/[a]/gi, "@");
      console.log(result);

/*
       *.表示任意字符
       *想要表示单纯的. 需要使用转义字符\
       *\.表示.
       *\\表示\
       * 注意,在构造函数中\是转义字符,所以要用 \\来表示
       * *\w表示任意字母数字,下划线
       * \W 除了字母数字下划线
       * \d任意数字
       * \D除了数字
       * \s空格
       * \S除了空格
       * \b单词边界
       * \B除了单词边界
       */
      var reg = /\./;
      reg = new RegExp("\\.");
      console.log(reg.test("abh\\hueuv.kouc"));
      reg = new RegExp("\\\\");
      console.log(reg.test("abbds\\gydgcscb"));
      reg = /\bchild\b/;
      console.log(reg.test("hello children"));
      console.log(reg.test("hello child ren"));
/*创建一个正则表达式检查字符串中是否含有aaa*/
      /*可以通过设置量词来查找*/
      var reg = /a{3}/; //量词只对前面的一个内容有用
      reg = /(ab){3}/;
      reg = /ab{3}c/; //==/abbbc/b出现三次
      reg = /ab{1,3}c/; //b出现1-3次
      reg = /ab{3,}c/; //至少出现3次
      reg = /ab+c/; //至少一个
      reg = /ab*c/; //0个或多个
      reg = /ab?c/; //0个或一个
      //检查是否以a开头 ^
      reg = /^a/;
      console.log(reg.test("abgjshfief"));
      reg = /a$/; //匹配结尾的a
      console.log(reg.test("abgjshfief"));
      reg = /^a$/; //这个只能是a
      console.log(reg.test("abgjshfiefa"));
      console.log(reg.test("a"));
      reg = /^a|a$/;
      console.log(reg.test("abgjshfiefa"));
      //创建正则表达式,用来检查是否合法(比如手机号)
      /*手机号规则
       *以1开头
       *第二位3-9
       *三位以后任意数字9个
       */
      var phoneNum = "13345678998";
      var reg = /^1[3-9][0-9]{9}$/; //^ 和$是为了防止号码中出现
//不是数字的内容,要结果完全符合我们需要的
      console.log(reg.test(phoneNum));

 去除空格

 var str = prompt("请输入用户名");
      //去除开头的空格
      //str = str.replace(/\s/g, "");
      //console.log(str);
      //str = str.replace(/^\s*/g, ""); //去掉开头0个或多个空格
      //str = str.replace(/\s*$/g, ""); //去掉结尾0个或多个空格
      str = str.replace(/^\s*|\s*$/g, "");
      console.log(str);
    </script>

检查电子邮箱格式 

/*检查电子邮箱格式
       *任意字母或者下划线, .任意字母数字下划线@  
//任意字母shuzi .任意字母(2-5位)  .任意字母(2-5位)
       *\w{3,}    (\.\w +)*@     [A-z0-9]+        ( \.[A-z]{2,5}){1,2}
       */
      var emailReg = /\w{3,}(\.\w +)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}/;
      var email = "ab77@qq.com";
      console.log(emailReg.test(email));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值