最新的Web开发教程
 

JavaScript字符串的方法


字符串方法帮助您处理字符串。


字符串的方法和属性

原始值,比如"John Doe" ,不能有属性或方法(因为它们不是对象)。

但是,使用JavaScript,方法和属性也可用于基本的价值观,因为JavaScript的执行方法和属性时,把原始的值对象。


字符串长度

length属性返回一个字符串的长度:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
试一试»

在String查找字符串

indexOf()方法返回一个字符串指定的文本中第一次出现(的位置)的指标:

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");
试一试»

lastIndexOf()方法返回一个字符串指定的文本中最后一次出现的索引:

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");
试一试»

两者indexOf()lastIndexOf()方法返回-1,如果没有找到该文本。

JavaScript的计算从零位。
0是字符串中的第一个位置,1是第二,2是第三...

两种方法都接受的第二参数作为用于搜索的起始位置。


搜索一个字符串的字符串

search()方法搜索指定值的字符串,并返回匹配的位置:

var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");
试一试»

你注意到了吗?

这两种方法, indexOf()search()都是平等的。

他们接受相同的参数(参数),以及它们返回相同的值。

这两种方法都是平等的,但search()方法可以采取更加强大的搜索值。

您将了解有关正则表达式的章节中强大的搜索值。


提取部分字符串

有3种方法,用于提取字符串的一部分:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

slice()方法

slice()中提取的字符串的一部分,并返回一个新的字符串所提取的一部分。

该方法需要两个参数:开始索引(位置),并结束索引(位置)。

这个例子切片一个字符串的位置,从7至13位的部分内容:

var str = "Apple, Banana, Kiwi";
var res = str.slice(7,13);

资源的结果将是:

Banana
试一试»

如果一个参数是负的,该位置是从字符串的末尾计数。

这个例子从切片从位置-12到位置-6一个字符串的一部分:

var str = "Apple, Banana, Kiwi";
var res = str.slice(-12,-6);

资源的结果将是:

Banana
试一试»

如果省略第二个参数,该方法将切出字符串的其余部分:

var res = str.slice(7);
试一试»

或者,从结尾开始计算:

var res = str.slice(-12);
试一试»

负位置并不在Internet Explorer 8和更早的工作。


substring()方法

substring()类似, slice()

所不同的是substring()不能接受负索引。

var str = "Apple, Banana, Kiwi";
var res = str.substring(7,13);

的结果res将是:

Banana
试一试»

如果省略第二个参数, substring()将切出字符串的其余部分。


substr()方法

substr()类似, slice()

不同的是,第二个参数指定的length所提取的部分的。

var str = "Apple, Banana, Kiwi";
var res = str.substr(7,6);

资源的结果将是:

Banana
试一试»

如果第一个参数是负的,该位置从字符串的结束计数。

第二个参数不能为负,因为它定义的长度。

如果省略第二个参数, substr()将切出字符串的其余部分。


更换字符串内容

replace()方法替换字符串中的另一个值指定值:

str = "Please visit Microsoft!";
var n = str.replace("Microsoft","w3ii");
试一试»

replace()方法也可以接受正则表达式作为搜索值。

默认情况下, replace()函数只替换第一个匹配。 要替换所有的匹配,请使用AG标志正则表达式(全局匹配):

str = "Please visit Microsoft!";
var n = str.replace(/Microsoft/g,"w3ii");
试一试»

replace()方法不会改变它呼吁字符串。 它返回一个新字符串。


转换为大写和小写

一个字符串转换为大写与toUpperCase()

var text1 = "Hello World!";       // String
var text2 = text1.toUpperCase();  // text2 is text1 converted to upper
试一试»

一个字符串转换为小写与toLowerCase()

var text1 = "Hello World!";       // String
var text2 = text1.toLowerCase();  // text2 is text1 converted to lower
试一试»

concat()方法

concat()连接两个或多个字符串:

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);
试一试»

所述concat()方法可用于代替加算子。 这两行做同样的:

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

所有的字符串方法返回一个新的字符串。 他们不修改原始字符串。
形式上说:字符串是不可变的:字符串不能更改,只能更换。


提取串字符

有2个用于提取字符串中的字符安全的方法:

  • charAt(position)
  • charCodeAt(position)

charAt()方法

charAt()方法返回一个字符串指定索引(位置)处的字符:

var str = "HELLO WORLD";
str.charAt(0);            // returns H
试一试»

charCodeAt()方法

charCodeAt()方法返回一个字符串指定索引处的字符的Unicode:

var str = "HELLO WORLD";

str.charCodeAt(0);         // returns 72
试一试»

访问字符串作为数组是不安全

你可能已经看到了这样的代码,访问字符串数组:

var str = "HELLO WORLD";

str[0];                   // returns H

这是不安全的不可预知

  • 它不会在所有的浏览器(而不是在IE5,IE6,IE7)
  • 它使串看起来像阵列(但他们不是)
  • str[0] = "H"并没有给出错误(但不工作)

如果你想读一个字符串数组,先将其转换为一个数组。


将字符串转换成数组

一个字符串可以被转换成与数组split()方法:

var txt = "a,b,c,d,e";   // String
txt.split(",");          // Split on commas
txt.split(" ");          // Split on spaces
txt.split("|");          // Split on pipe
试一试»

如果省略分隔符,返回的数组将包含在指数[0]整个字符串。

如果分隔符为“”,返回的数组将是单个字符数组:

var txt = "Hello";       // String
txt.split("");           // Split in characters
试一试»

完整的字符串参考

对于一个完整的参考,请访问我们完整的JavaScript字符串引用

引用包含所有的字符串属性和方法的说明和示例。


自测练习用!

练习1» 练习2» 练习3» 练习4» 练习5» 练习6»