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

前端正则表达式的相关方法

时间:2023-03-27 11:43:32 JavaScript

str.search(regexp)方法str.search(regexp)返回第一个匹配的位置,没有找到返回-1varresult='javascript'.search(/script/)console.log(result)//4str.replace(str|regexp,str|func)方法str.replace(str|regexp,str|func)用于执行检索和替换操作。如果在正则表达式中设置了修饰符g,则源字符串中所有匹配该模式的子串将被替换为第二个参数指定的字符串;如果没有修饰符g,则只有匹配的子串会被替换为子串。console.log('12-34-56'.replace(/-/,':'))//12:34-56console.log('12-34-56'.replace(/-/g,':'))//12:34:56str.split(regexp|substr,limit)使用正则表达式(或子串)作为分隔符来分割字符串console.log('12-34-56'.split(/-/))//["12","34","56"]str.match(regexp)在字符串str中查找匹配regexp的字符,它有3种模式:(1)如果regexp不包含g标签,则返回作为具有分组和属性索引(匹配位置)、输入(输入字符串,等于str)的数组的第一个匹配letstr='IloveJavaScript'letresult=str.match(/Java(Script)/)console.log(result)//["JavaScript","Script",index:7,input:"IloveJavaScript",groups:undefined](2)如果正则表达式有g标志,它返回所有匹配的数组作为字符串,没有分组和其他细节。letstr='IloveJavaScript'letresult=str.match(/Java(Script)/g)console.log(result)//["JavaScript"](3)如果没有匹配项,无论有没有标签g,都会返回空值。RegExp对象定义了两个方法regexp.test(str)来执行模式匹配。它的参数是一个字符串。如果包含正则表达式的匹配结果,则返回trueletstr='IloveJavaScript'console.log(/love/i.test(str))//trueregexp.exec(str)类似于String.match()方法前面介绍过,它的参数是一个字符串。根据正则表达式是否具有标志g,它的行为会有所不同。如果没有g,regexp.exec(str)将返回与str.match(regexp)完全相同的第一个匹配项;如果存在g,则调用regexp.exec(str)返回第一个匹配项,并且紧随其后的位置存储在属性regexp.lastIndex中。下一个相同的调用将从位置regexp.lastIndex开始搜索,返回下一个匹配项,并将后续位置保存在regexp.lastIndex中。这种特殊的行为允许我们在用正则表达式匹配字符串的过程中重复调用exec()。varpattern=/Java/gvartext='JavaScript比Java更有趣!变量结果;while((result=pattern.exec(text))!=null){console.log("Matched'"+result[0]+"'"+"atposition"+result.index+";下一次搜索开始于"+pattern.lastIndex)}//在位置0匹配'Java';下一次搜索从4//位置28处匹配的'Java'开始;下一次搜索从32开始