迅闻网
让更多人看到你

javascript字符串(js检索字符串的方法)

  javascript字符串

字符串结束一串字符,由双(单)引号括起来,字符串是JavaScript的一种数据类型(string类型)。

js检索字符串的方法

运用字符串的charAt()和chatCodeAt()办法,能够依据参数(非负整数的下标值)回来指定方位的字符或字符编码。
关于charAt()办法来说,假如参数不在0和字符串的length-1之间,则回来空字符串;而关于charCodeAt()办法来说,则回来NaN,而不是0或空字符串。
示例1
下面示例为String类型扩展一个原型办法,用来把字符串转换为数组。在函数中运用charAt()办法读取字符串中每个字符,然后装入一个数组并回来。
String.prototype.toArray=function(){//把字符串转换为数组
var1=this.length;a=[];//获取当时字符串长度,并界说空数组
if(1){//假如存在则履行循环操作,防备空字符串
for(vari=0;i<1;i++){//遍历字符串,枚举每个字符
a.push(this.charAt(i));//把每个字符按次序装入数组

js
}
}
returna;//回来数组
}
应用原型办法:
vars=”abcdefghijklmn”.toArray();//把字符串转换为数组
for(variins){//遍历回来数组,显示每个字符
console.log(s[i]);
}
查找字符串
运用字符串的indexOf()和lastIndexOf()办法,能够依据参数字符串,回来指定子字符串的下标方位。这两个办法都有两个参数,阐明如下。
榜首个参数为一个子字符串,指定要查找的方针。
第二个参数为一个整数,指定查找的开始方位,取值规模是0~length-1。
关于第二个参数来说,需求留意一下几个特殊情况。
假如值为负数,则视为0,相当于从榜首个字符开端查找。
假如省掉了这个参数,也将从字符串的榜首个字符开端查找。
假如值大于等于length特点值,则视为当时字符串中没有指定的子字符串,回来-1。
示例2
下面代码查询字符串中首个字母a的下标方位。
vars=”JavaScript”;
vari=s.indexOf(“a”);
console.log(i);//回来值为1,即字符串中第二个字符
indexOf()办法只回来查找到的榜首个子字符串的开始下标值,假如没有找到则回来-1。
示例3
下面代码查询URL字符串中首个字母n的下标方位。
vars=”c.biancheng.net”;
vara=s.indexOf(“biancheng”);//回来值为3,即榜首个字符n的下标方位
假如要查找下一个子字符串,则能够运用第二个参数来限制规模。
示例4
下面代码分别查询URL字符串中两个点号字符下标的方位。
vars=”c.biancheng.net”;
varb=s.indexOf(“.”);//回来值为1,即榜首个字符.的下标方位
vare=s.indexOf(“.”,b+1);//回来值为11,即第二个字符.的下标方位
indexOf()办法是依照从左到右的次序进行查找的。假如期望从右到左来进行查找,则能够运用lastIndexOf()办法来查找。
示例5
下面代码按从右到左的次序查询URL字符串中最终一个点号字符的下标方位。
vars=”c.biancheng.net”;
varn=s.lastIndexOf(“.”);//回来值为11,即第二个字符.的下标方位
lastIndexOf()办法的查找次序是从右到左可是其参数和回来值都是依据字符串的下标依照从左到右的次序来核算的,即字符串榜首个字符下标值一直都是0,而最终一个字符的下标值一直都是length-1。
示例6
lastIndexOf()办法的第二个参数指定开端查找的下标方位,可是,将从该点开端向左查找,而不是向右查找。
vars=”http://c.biancheng.net”;
varn=s.lastIndexOf(“.”,11);//回来值是8,而不是18
其间第二个参数值11表明字符a(榜首个)的下标方位,然后从左边开端向左查找,所以就回来榜首个点号的方位。假如找到,则回来榜首次找到的字符串的开始下标值。
vars=”http://c.biancheng.net”;
varn=s.lastIndexOf(“c”);//回来值为7
假如没有设置第二个参数,或许为参数负值,或许参数大于等于length,则将遵从indexOf()办法进行操作。
查找字符串
search()办法和indexOf()的功用是相同的,查找指定字符串榜首次出现的方位。可是search()办法仅有一个参数,界说匹配方式。该办法没有lastIndexOf()的反向检索功用,也不支持全局方式。
示例7
下面代码运用search()办法匹配斜杠字符在URL字符串的下标方位。
vars=”c.biancheng.net”;
n=”s.search(“//”);”
search()办法参数界说:
search()办法的参数为正则表达式(RegExp目标)。假如参数不是RegExp目标,则JavaScript会运用RegExp()函数把它转换为RegExp目标。
search()办法遵从从左到右的查找次序,并回来榜首个匹配的子字符串的开始下标方位值。假如没有找到,则回来-1。
search()办法无法查找指定的规模,一直回来的榜首个匹配子字符串的下标值,没有indexOf()办法灵活。
匹配字符串
match()办法能够找出所有匹配的子字符串,并以数组的方式回来。
示例8
下面代码运用match()办法找到字符串中所有字母c,并回来它们。
vars=”http://c.biancheng.net”;
vara=s.match(/c/n);//全局匹配所有字符c
console.log(a);//回来数组[c,c]。
match()办法回来的是一个数组,假如不是全局匹配,那么match()办法只能履行一次匹配。例如,下面匹配方式没有n的修饰符,只能够履行一次匹配,回来仅有一个元素c的数组。
vara=s.match(/c/);//回来数组[h]
假如没有找到匹配字符,则回来null,而不是空数组。
当不履行全局匹配时,假如匹配方式包括子表达式,则回来子表达式匹配的信息。
示例9
下面代码运用match()办法匹配URL字符串中所有点号字符。
vars=”http://c.biancheng.net”;
vara=s.match(/(\.).*(\.).*(\.)/);//履行一次匹配检索
console.log(a.length);
console.log(a[0]);
console.log(a[1]);
console.log(a[2]);
console.log(a[3]);
在这个正则表达式“/(\.).*(\.).*(\.)/”中,左右两个斜杠是匹配方式分隔符,JavaScript解释器能够依据这两个分隔符来辨认正则表达式。在正则表达式中小括号表明子表达式,每个子表达式匹配的文本信息会被独立存储。点号需求转义,由于在正则表达式中它表明匹配任意字符,星号表明前面的匹配字符能够匹配任意屡次。
在上面示例中,数组a包括4个元素,其间榜首个元素寄存的是匹配文本,其余元素寄存的是每个正则表达式的子表达式匹配的文本。
另外,回来的数组还包括两个目标特点,其间index特点记载匹配文本的开始方位,input特点记载的是被操作的字符串。
console.log(a.index);
console.log(a.input);
在全局匹配方式下,match()将履行全局匹配。此时回来的数组元素寄存的是字符串中所有匹配文本,该数组没有index特点和input特点;一起不再供给子表达式匹配的文本信息,也不提示每个匹配子串的方位。假如需求这些信息,能够运用RegExp.exec()办法。

未经允许不得转载:迅闻网 » javascript字符串(js检索字符串的方法)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页