zoukankan      html  css  js  c++  java
  • 正则表达式笔记3

    敏感词过滤

    //| : 或的意思

    //replace : 第二个参数:可以是字符串,也可以是一个回调函数

    //菲称仁爱礁附近17艘中国船均在菲军监视之下

    window.onload = function(){
    		var aT = document.getElementsByTagName('textarea');
    		var oInput = document.getElementById('input1');
    
    		re = /菲称|中国|菲军/g;
    
    		oInput.onclick = function(){
    
    			// 方法一
    			// aT[1].value = aT[0].value.replace(re,'*');
    
    			// 方法二
    			aT[1].value = aT[0].value.replace(re,function(str){
    				
    				//函数的第一个参数:就是匹配成功的字符	
    				console.log(str);
    				
    				var result = '';
    
    				for (var i = 0; i < str.length; i++) {
    					result += '*';
    				};
    				return result;
    			});
    		};
    
    	}
    

      

    替换前<br />
    	<textarea>
    	</textarea><br />
    	替换后<br />
    	<textarea>
    	</textarea><br />
    	<input type="button" value="确定" id="input1" />
    

    匹配子项

    //匹配子项 : 小括号 ()  (还有另外一个意思,分组操作)
    
    //1+1*2
    //(1+1)*2
    
    //把正则的整体叫做(母亲)
    //然后把左边第一个小括号里面的正则,叫做这个第一个子项(母亲的第一个孩子)
    //第二个小括号就是第二个孩子
    
    var str = '2017-5-25';
    
    var re = /(d+)(-)/g;
    
    str = str.replace(re,function($0,$1,$2){
    	//第一个参数:$0(母亲),第二个参数 : $1(第一个孩子)
    	//,第二个参数 : $1(第二个孩子)
    	
    	console.log( $1 );
    	
    	return $1 + '.';
    	
    	return $0.substring(0,$0.length-1) + '.';
    	
    });
    
    console.log( str );   //2017.5.25
    
    
    
    var str2 = 'abc';
    
    var re = /(a)(b)(c)/;
    
    //[abc,a,b,c](当match不加g的时候才可以获取到子项的集合)
    console.log(str2.match(re));  
    

      

    字符类:

    //字符类 : 一组相似的元素   [] 中括号的整体代表其中一个字符
    
    		var str = 'abdc';
    
    		var re =/a[bde]c/;
    
    		console.log(re.test(str));	//false
    
    		
    		//排除 : ^ 如果^写在[]里面的话,就代表排除的意思
    
    		var str2 = 'abc';
    
    		var re = /a[^bdef]c/;
    
    		console.log(re.test(str2));	//false
    
    
    		var str3 = 'abc';
    
    		var re = /a[a-z0-9A-Z]c/;	
    
    		console.log( re.test(str3) );	//true
    

      

    转义字符:

    //.  :  任意字符
    		//. : 真正的点
    
    		var str = 'a.c';
    
    		var re = /a.c/;
    
    		console.log(re.test(str));	//true
    
    		var str2 = 'abcdef';
    
    		var re2 = /a.cd/;
    
    		console.log(re2.test(str2));	//true
    
    		// : 独立的部分  匹配单词边界,不匹配任何字符 ( 起始,结束,空格 )
    		//B : 非独立的部分
    
    		var str3 = 'onetwo';
    		var str4 = 'one two';
    
    		var re3 = /one/;
    
    		console.log( re3.test(str3) );	//false
    		console.log( re3.test(str4) );	//true
    
    		/*
    			说明:
    			我要从一堆原始数据中查找55这个数字,包括三种情况:
    			假设原始数据是: 123512,a55bcd,55abc,abc55,1235bs,asdfc,55,
    			1.要求:只有55,前后都不能有其他字符,比如a55bcd,55abc,abc55都是不行的
    			  这种情况下,用55,就相当于一个停止分界线,告诉电脑55的前面和后面都不允许带字符
    			2.要求:以55开头,后面允许带字符比如55abc,55,但是a55bcd是不允许的
    			  这种情况下,用55,这里只有55前面有停止分界线,告诉电脑前面不允许带字符,后面没有停止分界线,后面可以带字符
    			3.要求:以55结尾,前面允许带字符,后面不允许.比如abc55是允许的,但是a55bcd是不允许的
    			  这种情况下,用55,这里是有55后面有停止分界线,告诉电脑后面不允许带字符,前面没有停止分界线,是允许   带字符的
    		*/
  • 相关阅读:
    千峰公开课徐老师讲解前端前沿技术总结
    网站被k到可以使用关键词搜索到首页优化总结
    SEO基础内容
    react项目后台及上线步骤
    超好用的图片压缩工具,推荐给你
    属性title样式自定义
    Vue.js_devtools_5.1.0.zip【需要的可自行下载】
    js异步执行 按需加载 三种方式
    Web安全之跨站脚本攻击(XSS)
    操作数组不要只会for循环
  • 原文地址:https://www.cnblogs.com/bokebi520/p/6907805.html
Copyright © 2011-2022 走看看