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

字符串方法

时间:2023-03-28 19:05:49 HTML

判断一个字符串是否包含在另一个字符串中lets='Helloworld'/*参数字符串是否在原字符串的头部返回一个布尔值*///true/*参数字符串是否返回原字符串末尾的布尔值*/s.endsWith('world');//true/*字符串是否包含参数字符串*/s.includes('w');//truestartsWith,endsWith,包括所有支持第二个参数,表示开始搜索的位置letw='东方不败'索引从0开始w.startsWith('square',1);//truew.endsWith('square',2);//true/*includes第二个参数表示从指定下标开始向后查找,返回一个布尔值*/w.includes('undefeated',2);//truew.includes('Undefeated',3);//falsesepeat()repeat()方法返回一个新字符串并重复原字符串n次leta='hello'a.repeat(3);//hellohellohello重复3次'w'.repeat(2);//ww重复2次a.repeat(0);//""字符串为空a.repeat(2.7);//如果是小数则四舍五入重复2次如果是负数否则Infinity会报错leta='hello'a.repeat(Infinity);//报错a.repeat(-1);//报告错误leta='hello'a.repeat(-0.9);//如果参数是0~-1之间的小数,因为会四舍五入,所以是0""a.repeat(NaN);//参数为NaN等于0""a.repeat('he');//""if如果参数是字符串,则输出空值a.repeat('2');//如果参数是字符串,则先转换数字padStart()padEnd()字符串补全padStart()head补全padEnd()tailCompletionletb='how'b.padStart(5,'aa');//字符串长度补到5位,aab.padStart(5,'aba');//字符串长度补到5位,在how的头部补全ab,补完的字符串超过b.padEnd(5,'aa')将被截取;//字符串长度补到5位,在howaab.padEnd(5,'aba');的最后完成//Characters字符串长度填充到5位,在how结尾补全ab,超过b.padStart(5)将截取补全的字符串;//如果省略第二个参数,将“how”替换为空格b.padEnd(5);//如果省略第二个参数,则使用空格代替"how"PadStart常见使用场景:'1'.padStart(5,'0');//完成数字00001'09-12'.padStart(10,'YYYY-MM-DD');//提示字符串格式YYYY-09-12,将YYYY-MM-DD补全到09-12开头,保留10个字符,截取其余的,消除字符串空格lets='abc's.trim();//消除前导和尾随空格'abc's.trimStart();//消除前导空格'abc's.trimEnd();//去掉尾部空格'abc'replaceAll()在es6之前,replace的字符串替换只能替换匹配到的。如果要匹配的字符串中有多个字符,则只替换第一个字符。批量匹配需要在匹配后加上g常用的replace()。只能替换第一个匹配字符'hello'。replace('l','o');//heolo只替换第一个字符。如果要全部匹配,需要使用正则表达式g修饰符'hello''.replace(/l/g,'o');//heooo在此基础上replaceall,这里提供一个更方便的方法,es2021引入了replaceAll(),可以匹配all并替换letr='green'r.replaceAll('e','n');//grnnn匹配所有e并替换为nconsole.log(r);//绿色//之前的替换不会影响原来的字符。注意replace和replaceAll()将返回新字符,而不是影响原始字符console.log('hello'.replaceAll(/l/,'o'));//errorreplaceAll()是替换全部,如果第一个参数使用正则表达式,/g,g必须是全局的,否则会报错replaceAll()specialstringreplaceAll()接受两个参数,第二个参数可以是字符串,在字符串的基础上,这里提供一些特殊的字符串字符来说明$&匹配到的字符串$`匹配结果前的文本$'匹配结果后的文本$n匹配成功n组content,n为从1开始的自然数。该参数生效的前提是第一个参数必须是正则表达式。$$指的是美元符号$'hello'.replaceAll('e','$&');//hello返回与原始字符相同的字符'hello'.replaceAll('l','$`');//hehehelo将l替换为l之前的字符,有两个l,第一个l替换为he,第二个l替换为hehe'hello'.replaceAll('l',`$'`);//helooo用l后面的字符替换l,有两个l,第一个l替换为lo,第二个l替换为o'hello'.replaceAll(/(he)(llo)/g,'$2$1')//llohe$后面的x是匹配的个数,$2等于llo$1等于el,这里相当于把llo放在前面,he放在后面,这种匹配方式必须是等长的字符串匹配,如果是/(he)(lo)/g,'$2$1'不会生效,因为匹配的字符串长度与原字符串的长度不匹配。replaceAll()组和函数匹配replaceAll()的第二个参数可以是函数'hello'.replaceAll('l',()=>'o');//heooo将所有l替换为o因为replaceAll()可以是一个函数,那么可以在这个函数上执行其他操作。我们可以对参数匹配条件进行函数操作。这里演示组和函数匹配letstr='123hello456'letregex=/(\d+)([a-z]+)(\d+)/g//共有三组,组1匹配数字,组2匹配letters,group3matchesnumbers//all是传入的字符串123hello456,z1\z2\z3是regex函数replacer(all,z1,z2)中对应的组(\d+),([a-z]+),(\d+),z3,offset,string){return[z1,z2,z3].join('-')//将匹配到的内容用-连接}letre=str.replaceAll(regex,replacer)console.log(re);//123-hello-456这个替换函数可以接受多个参数。第一个参数为抓取的匹配内容,第二个参数为抓取组匹配(有多少组匹配,对应的参数就有多少)。另外最后可以加两个参数,倒数第二个参数是抓取的内容在整个字符串中的位置,最后一个参数是原始字符串。at根据at的下标匹配输出。当at参数为正数时,从字符串头部开始,起始值为0。当at为负数时,从字符串末尾开始,起始值为1'hello'.at(2);//输出l个字符从字符串的第0个字符开始,输出下标为2的字符'hello'.at(-1);//输出o,从尾开始,从第1个字符开始,输出下标为1的字符,请点亮星星