Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

JavaScript基础回顾知识点记录4-正则表达式篇

 Share


KaiWn

Recommended Posts

    • js 中 正则表达式使用
      • 创建正则对象和test方法使用
        		/*
        			创建正则表达式的对象
        			语法: var 变量 = new RegExp("正则表达式","匹配模式")  或者 var 变量 = /正则表达式/
        			匹配模式:  i:忽略大小写 。    g:全局匹配模式		
        		*/
        		//var reg = new RegExp("a","i");
        		var reg = /a/i;
        		var str = "1A2d3f4g6h8";
        		
        		// 正则表达式的方法: test() : 检查字符串是否符合正则表达式规则,符合返回true,否则返回false
        		console.log(reg.test(str));	//输出true 
      • 字符串和正则的相关方法
        		// split() 支持正则表达式匹配拆分字符串。该方法默认会走全局匹配。
        		var res = str.split(/[A-z]/);
        		console.log(res);	//输出["1", "2", "3", "4", "6", "8"]
        		
        		// search() 搜索字符串中是否有指定内容,不能全局匹配,只能搜索第一个符合条件的位置
        		var str1 = "hello abc hello aec";
        		var res2 = str1.search(/a[be]c/);
        		console.log(res2);	//输出6( 第一个匹配的abc的位置)
        		
        		/*
        			match()  根据正则表达式,从一个字符串中将符合条件的内容提取出来。
        			match默认只会找到第一个符合要求的内容,需要检索全部需要改为全局匹配模式,且可以设置多个匹配模式
        			匹配到的内容封装到数组中保存
        		*/
        		var str2 = "1a2b3c4d5e6f7C";
        		var res3  = str2.match(/[A-z]/gi);	// gi表示全局匹配且不区分带小写
        		console.log(res3);	//输出["a", "b", "c", "d", "e", "f", "C"]
        		
        		/*
        			replace() 将字符串指定内容替换成新的内容,默认只会替换第一个
        			第一个参数表示: 被替换的内容,可以用正则表达式
        			第二个参数表示: 新的内容(替换为""的话,就是删除匹配的元素)
        		*/
        		var str3 = "1a2a3a4a5a";
        		var res4 = str3.replace("a","@@@");
        		var res5 = str3.replace(/a/gi,"@@@");
        		var res6 = str3.replace(/a/gi,"");
        		console.log(res4);	//输出1@@@2a3a4a5a
        		console.log(res5);	//输出1@@@2@@@3@@@4@@@5@@@
        		console.log(res6);	//12345
      • 正则语法记录
        • {n} 表示出现n次;{m,n} 出现m-n次;{m,} m次以上;表示至少一次
        • *表示0个或多个;?表示0个或1个
        • ^表示开头;$表示结尾
        • .表示任意字符
        • \表示转义字符;比如查询是否含有. 则写为 /\./
        • 构造函数定义正则使用转义字符\ 需要注意:var reg = new RegExp("\\.","i"); 等价于 var reg = /\./;
      • 小练习:检测手机号码合法性
        		/*
        			检查手机号是否合法:1开头,第二位3-9任意数,三位之后任意数9个
        		*/ 
        		var phone = "13583404829";
        		var reg2 = /^1[3-9][0-9]{9}$/;
        		console.log(reg2.test(phone));  //输出true
Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...