当前位置: 首页 > Web前端 > JavaScript

JavaScript的正则表达式详解

时间:2023-03-27 11:05:11 JavaScript

一、正则表达式正则表达式是用来匹配字符串的语法。在JavaScript中,RegExp的exec和test方法以及String的match、matchAll、replace、search和split方法使用。正则表达式语法,看这里!1.创建正则表达式方法一会在脚本加载时编译,其性能高于方法二。如果正则表达式不会发生变化,建议使用方法一。//方法一:varre=/ab+c/[flags];//方法二:varre=newRegExp("ab+c"[,flags]);//flags可用值:g(全局匹配),i(忽略大小写)),m(多行匹配),s(点匹配所有字符),u(unicode),y(粘性,粘性匹配)。2.可用方法方法说明execRegExp方法,在字符串中找到匹配项,返回一个数组(不匹配返回null)testRegExp方法,测试是否有匹配项,返回true或falsematchString方法,在字符串中找到匹配项,返回一个数组(没有匹配返回null)matchAllString方法,找到字符串中的所有匹配,返回一个迭代器(iterator)searchString方法,测试是否有匹配,返回匹配的位置索引,失败返回-1replaceString方法,查找字符串中的匹配项,并将匹配项替换为指定字符串splitString方法,将字符串与指定字符串拆分,返回字符串数组2.如何使用?1、字面常量可以直接用字面常量写正则表达式,然后用exec()方法执行。//1.例子varmyRe=/ab*/g;varstr='abbcdefabh';变种我的数组;while((myArray=myRe.exec(str))!==null){varmsg='Found'+myArray[0]+'.';msg+='下一场比赛开始于'+myRe.lastIndex;console.log(msg);}//输出:找到abb。下一场比赛从3Foundab开始。下一场比赛开始于9//2.示例:从URL中提取子域名varurl="http://xxx.domain.com";console.log(/[^.]+/.exec(url)[0].substr(7));//Output:xxx2,RegExpobject使用RegExp对象进行正则表达式匹配。//RegExp语法:pattern是一个正则表达式文本newRegExp(pattern[,flags])RegExp(pattern[,flags])创建一个RegExp对象newRegExp('ab+c','i');//字符串模式的第一个参数构造函数newRegExp(/ab+c/,'i');//第一个参数是常规文字的构造函数实例constregex1=RegExp('foo*','g');conststr1='tablefootball,foosball';letarray1;while((array1=regex1.exec(str1))!==null){console.log(`Found${array1[0]}。下一个开始于${正则表达式1.lastIndex}.`);//预期输出:“找到foo。下一个从9开始。”//预期输出:“找到foo。下一个从19开始。”}3.String可以使用String的方法来执行正则表达式模式。//1.例子letre=/(\w+)\s(\w+)/;letstr="JohnSmith";letnewstr=str.replace(re,"$2,$1");console.log(newstr);//输出为:Smith,John//2.示例varstr='有关详细信息,请参阅第3.4.5.1章';varre=/see(chapter\d+(\.\d)*)/i;varfound=str.match(re);console.log(found);3.参考文档详细解释JavaScript正则表达式