JavaScript学习(2) ------ 正则表达式

正则表达式


两种定义方式:
1、new 对象创建

语法:var 变量 = new RegExp(“正则表达式”,“匹配模式”)

  <script type="text/javascript">
   window.onload = function(){
    	var reg = new RegExp("a","i");
    	var str = "babc";
    	document.write(reg.test(str));	//true
    	var str2 = "bbc";
    	document.write(reg.test(str2));	 //false
    	var str3 = "Abb";
    	document.write(reg.test(str3));  //true
   }
  </script>
  • "i" 是忽略大小写比较
  • "g" 是全局匹配模式
  • "ig" 全局匹配同时忽略大小写
2、运用字面量创建 语法:var 变量 = / 正则表达式 / 匹配模式 ;

例子:
1.检查一个字符串中是否有a 或者 b

// 检查一个字符串中是否有a 或者 b
    var reg = /a|b/ ;
    var str1 = "dfdf";
    document.write(reg.test(str1));	//false
    var str2 = "adfdf";
    document.write(reg.test(str2));	//true

2.检查一个字符串中是否有字母([] 表示或 [ab] = a|b)

    //检查一个字符串中是否有字母
    //[] 表示或 [ab] = a|b
    var reg = /[a-zA-Z]/;
    var str1 = "34343";
    document.write(reg.test(str1));	//false
    var str2 = "d34e3";
    document.write(reg.test(str2));	//true
    var str3 = "ASDFF";
    document.write(reg.test(str3));	//true

3.检查一个字符串中是否有 abc ,adc,或,aec

// 检查一个字符串中是否有 abc ,adc,或,aec
    var reg = /a[bde]c/;
    var str1 = "dfabcd";
    document.write(reg.test(str1));	//true
    var str2 = "efebaec";
    document.write(reg.test(str2));	//true
    var str3 = "eeeadc";
    document.write(reg.test(str3));	//true
    var str4 = "abadaee";
    document.write(reg.test(str4));	//false

4.判断一个字符串是否不仅仅包括a和b

//判断一个字符串是否不仅仅包括a和b
//[^ab]表示除了ab,全由ab构成则返回 false
    var reg = /[^ab]/;
    var str1 = "a";
    document.write(reg.test(str1));	//false
    var str2 = "b";
    document.write(reg.test(str2));	//false
    var str3 = "ab";
    document.write(reg.test(str3));	//false
    var str4 = "fdfdfdf";
    document.write(reg.test(str4));	//false

5、判断一个字符串是否全为数字

// 判断一个字符串是否全为数字
    var reg = /[^0-9]/;
    var str1 = "3fee";
    document.write(reg.test(str1));	//true
    var str2 = "dfdfd";
    document.write(reg.test(str2));	//true
    var str3 = "330434";
    document.write(reg.test(str3));	//false




字符串和正则的相关方法

split 拆分:
按小写字母拆分字符串为数组
//按小写字母拆分字符串
    var str = "1a2b3c4d5e6f7g8h9i0z";
    var result = str.split(/[a-z]/);
    document.write(result);	//1,2,3,4,5,6,7,8,9,0,

会将小写字母换成‘,’字符


search:检索与正则表达式相关的内容索引,不等全局指定
//返回第一次出现的索引,没有返回-1
    var str = "hello abc hello abc abd";
    var result = str.search("abc");
    document.write(result);	//6
    
    var str2 = "ni shi zhu ma ?"
    var result2 = str2.search("heng");
    document.write(result2);	//-1

match:找到符合条件的内容,封装发哦数组中返回
// 找到符合条件的内容
    var str = "1a2b3c4d5E6F7g8h9i0z";
    var result = str.match(/[a=z]/);
     document.write(result);	//a
     result = str.match(/[a-z]/g); //a,b,c,d,.g.h.i,z
     document.write(result);
     result = str.match(/[a-z]/gi);	//a,b,c,d,E,F,g,h,i,z
     document.write(result);

replace:将字符串中指定的内容换成新的内容
	参数(1)被替内容 (2)新的内容(可正则)

//将字符串中指定的内容换成新的内容
    var str = "1a2b3c4d5e6f7g8h9i0j";
    var result = str.replace(/[a]/gi,"@_@");	
     document.write(result);	//1@_@2b3c4d5e6f7g8h9i0j
     
     result = str.repeat(/[a-z]/g,"");	
     document.write(result);	//1234567890




其他正则基础

量词

{}:设置出现的次数,仅对前面一个内容起作用
  • 是否含有 aaa --------reg = /a{3}/
  • 是否含有 ababab ----reg=/(ab){3}/
  • 是否含有ab,出现1-3次--reg = /(ab){1,3}/
  • + 表示至少一个 -------{1,}
  • * 表示0个或者多个 ----{0,}
  • ? 表示0个或者1个------{0,1}
  • 检查是否以 a 开头------reg = /^a/
  • 检查是否以 a 结尾------reg = /a$/
  • 任意字符---------------reg = /./
  • 检查是否有'\' ---------reg = /\\/
其他格式
  • \w ----------代表任意字母、数字、下划线
  • \W ----------代表除了字母数字下划线的东西
  • \d ----------代表任意数字,即[0-9]
  • \D ----------代表除了数字,即[^0-9]
  • \s ----------代表空格
  • \S ----------代表除了空格
  • \b ----------代表单词边界
  • \B ----------代表除了单词边界

练习

// 找出一句话中是否有单词 child
    var reg = /\bchild\b/;
    var str = "fdafj child"
    document.write(reg.test(str)); //true
// 找出一句话中是否有单词 child
    var reg = /\bchild\b/;
    var str = "fdafjchild"
    document.write(reg.test(str)); //false,单词没独立	
// 去掉字符串中的空格
    var str = "        hello   ";
    document.write(str.length);		//16
    str = str.replace(/\s/g,"");
    document.write(str.length);		//5
//去掉开头的空格
    var str = "   hello ";
    document.write(str.length);		//9
    str = str.replace(/^\s*/g,"")
    document.write(str.length)		//6
//去掉尾部的空格
    var str = "   hello ";
    document.write(str.length);	//9
    str = str.replace(/\s*$/g,"")
    document.write(str.length)	//8
//去掉两侧空格
    var str = "   hello ";
    document.write(str.length);	//9
    str = str.replace(/^\s*|\s*$/g,"")
    document.write(str.length)	//5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值