js字符串、正则表达式全解

时间:2021-08-19 18:46:53
name = " Muaneng Tuanpeng ".trim().toLowerCase().replace("eng","ing");  //trim()删除字符串前后空格。toLowerCase转化为小写。replace替换第一个eng,
name1 = name.substring(name.indexOf("t",3),name.lastIndexOf("g",0)); //slice、substring参数为首尾下标,substr为起点下标和长度。都不改变源字符串。indexOf和lastindexOf查询子字符串的位置,第二个参数表示从哪个字符开始向对面搜索
name1 = name.substr(-4); //传入负值时,slice将负值加上字符串长度,substr将第一个负值加上字符串长度,第二个负值转为0,substring将负值都转为0
name1="muaneng tuanpeng".replace(/eng/g,"ing").split(" ",2)[0]; //replace接收正则表达式,/g替换全部,split分割字符串,并限定返回的数组个数。[0]读取返回数组的第一个元素。
//正则表达式 = /pattern/flags 其中flags中g表示匹配全部,i表示不区分大小写,m表示匹配多行
//pattern包含 ([{\^$|)?*+.]}元字符,若匹配的字符串中包含元字符,使用\转义。 .表示任一字符,()表示捕捉字符
var patter1 = /(.)u/gi; //正则表达式,标志没有可为空,也可以使用var patter1 = new RegExp("pattern","flags");使用new是创建对象
if(patter1.test(name)){ //test查找符合要求的子串是否存在,返回true
printf(RegExp.input); //原始字符串
printf(RegExp.leftContext); //捕捉到的位置的左边字符串
printf(RegExp.rightContext); //捕捉到的位置的右边字符串
printf(RegExp.lastMatch); //返回最近一次与整个正则表达式匹配的字符串 mu
printf(RegExp.lastParen); //返回最近一次捕捉的字符
printf(patter1.global); //返回正则是否包含全局标志g
}
var matches = patter1.exec(name); //查找符合要求的子串。matches.index表示查找到的起始下标,matches.input表示输入字符串。patter1.lastIndex表示查找到的结束下标,matches[0]表示查找到的第一个匹配项,若匹配项为全局模式,则每次调用返回下一个匹配项。
printf(matches.index);printf(patter1.lastIndex);printf(matches[0]);
String.prototype.startwith = function(text){ //设置字符串引用的原型,为String、Object、Array等添加方法
return this.indexOf(text)==0;
};
printf(name.startwith("mu"));