编辑这个页面须要登录或更高权限!

JavaScript 字符串方法

在上一章中,我们学习了字符串的基础知识,下面让我们再前进一步,开始考虑可以对具有内置方法和属性的字符串进行一些有用的操作。

原始值(例如“New Delhi”)不能具有属性或方法(因为它们不是对象)。

但是在JavaScript中,方法和属性也可用于原始值,因为JavaScript在执行方法和属性时会将原始值视为对象。

查找字符串的长度

length属性返回字符串的长度。对于空字符串,长度为0。

var str = 'Java Script';
str.length;// return 11
测试看看‹/›

注意:空格也算作字符:

concat()方法

concat()方法用于连接两个或多个字符串。

var a = 'NHOOO';
var b = 'COM';
var c = a.concat(b);
测试看看‹/›

注意:所有字符串方法都返回一个新值。它们不会更改原始变量。

转换为大写或小写

toUpperCase()方法返回转换为大写形式的调用字符串值。

var str1 = "(cainiaojc.com)";
var str2 = str1.toUpperCase();
测试看看‹/›

toLowerCase()方法返回转换为小写形式的调用字符串值。

var str1 = "(cainiaojc.com)";
var str2 = str1.toLowerCase();
测试看看‹/›

在字符串中查找子字符串

indexOf()方法返回指定值在字符串中首次出现的位置(索引)。

var str = 'Air Pollution is introduction of chemicals to the atmosphere';
str.indexOf('Pollution');// 4
测试看看‹/›

注意:第一个字符的索引为0,第二个字符的索引为1,依此类推。

lastIndexOf()方法返回字符串中最后一次出现指定值的位置(索引)。

var str = 'Hello world, I repeat Hello world';
str.lastIndexOf('Hello');// 22
测试看看‹/›

indexOf()lastIndexOf()返回-1如果值未找到:

var str = "(cainiaojc.com)";
str.indexOf("fish");
str.lastIndexOf("beer");
测试看看‹/›

indexOf()lastIndexOf()都接受第二个参数作为搜索的起始位置:

var str = 'HELLO WORLD HELLO';
str.indexOf('L', 6);
测试看看‹/›

在字符串中搜索子字符串

search()方法执行搜索以查找正则表达式和字符串之间的匹配项。

如果找到匹配项,它将返回第一个匹配项的位置,如果找不到匹配项,则将返回-1

var str = 'The question is to be, or not to be, that is to be.';
var pos = str.search('to be');
测试看看‹/›

以下示例演示了带i标志的正则表达式的使用(忽略大小写):

var str = 'The question is TO BE, or not to be, that is to be.';
var pos = str.search(/to be/i);
测试看看‹/›

在本教程的后面,您将学到更多关于正则表达式的信息。

将字符串转换为数组

split()方法将字符串拆分为子字符串数组,然后返回新数组。

我们将使用split()方法通过以表示的空格字符分隔数组" "。

var str = 'can you help me?';
var arr = str.split(" ");
测试看看‹/›

现在我们在arr变量中有了一个新数组,我们可以使用索引号访问每个元素:

arr[0];   // Air
arr[2];   // is
测试看看‹/›

在以下示例中,我们将使用“i”作为分隔符:

var str = 'can you help me?';
var arr = str.split("i");
测试看看‹/›

如果将空字符串("")用作分隔符,则该字符串将转换为字符数组:

var str = 'can you help me?';
var arr = str.split("");
测试看看‹/›

通过拆分字符串,您可以确定一个句子中有多少个单词。

删除字符串前后空白

trim()方法从字符串的两端删除空格,但不能去除字符串之间的空白,空格可以是制表符或空格。

var greeting = "   Hello world!   ";
greeting.trim();
测试看看‹/›

此方法是执行删除多余空白,常见的简单方法。

替换字符串值

replace()方法返回一个新字符串,该字符串具有部分或全部模式匹配项,并由替换项替换。

第一个参数将是要找到的值,第二个参数将是要替换为的值。

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace('to be', 'ZZZ');
测试看看‹/›

默认情况下,replace()方法仅替换第一个匹配项。

要替换所有出现的内容,请使用带有g标志的正则表达式(全局搜索):

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace(/to be/g, 'ZZZ');
测试看看‹/›

要替换不区分大小写的代码,请使用带有i标志的正则表达式(忽略大小写):

var str1 = 'The question is TO BE, or not to be, that is to be.';
var str2 = str1.replace(/to be/gi, 'ZZZ');
测试看看‹/›

在本教程的后面,您将学到更多关于正则表达式的信息。

提取部分字符串

有三种方法可以提取字符串的一部分:

slice()方法

slice()方法提取字符串的一部分,并将其作为新字符串返回,而无需修改原始字符串。

此方法有两个参数:开始索引(start)结束索引(end)(不包括结束)。

本示例从索引3到索引9(10-1)提取字符串的一部分:

var str = 'Hello Javascript (cainiaojc.com)';
var ext = str.slice(3, 10);
测试看看‹/›

注意:第一个字符的索引为0,第二个字符的索引为1,依此类推。

使用负索引从字符串末尾进行选择:

var str = 'Hello Javascript (cainiaojc.com)';
var ext = str.slice(-8, -3);
测试看看‹/›

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

var str = 'Hello Javascript (cainiaojc.com)';
var ext = str.slice(3);
测试看看‹/›

下面的示例使用slice()仅提取最后一个字符:

var str = 'Hello Javascript (cainiaojc.com)';
var ext = str.slice(-1);
测试看看‹/›

substring()方法

substring()方法类似于slice()方法。

区别在于substring()不能接受负索引值。

var str1 = 'can you help me?';
var str2 = str1.substring(4, 10);
测试看看‹/›

如果省略第二个参数,则substring()method将提取字符串的其余部分:

var str1 = 'can you help me?';
var str2 = str1.substring(7);
测试看看‹/›

substr()方法

substr()方法类似于slice()方法。

区别在于第二个参数指定了提取部分的长度

以下示例用于substr()从索引4提取字符,长度为18:

var str1 = 'can you help me?';
var str2 = str1.substr(4, 18);
测试看看‹/›

如果省略第二个参数,则substr()方法将提取字符串的其余部分:

var str1 = 'can you help me?';
var str2 = str1.substr(7);
测试看看‹/›

要从字符串末尾提取字符,请使用负索引值:

var str1 = 'Hello Javascript (cainiaojc.com)';
var str2 = str1.substr(-6, 3);   // tor
测试看看‹/›

访问字符串字符

有三种访问字符串字符的方法:

charAt()方法

charAt()方法返回字符串中指定索引处的字符。

var str = 'Hello Javascript (cainiaojc.com)';
str.charAt(1);// 返回 a
测试看看‹/›

下面的示例返回字符串的最后一个字符:

var str = 'Hello Javascript (cainiaojc.com)';
str.charAt(str.length-1);
测试看看‹/›

charCodeAt()方法

charCodeAt()方法返回介于0和65535之间的整数,该整数表示给定索引处的UTF-16代码单元。

var str = 'Hello Javascript (cainiaojc.com)';
str.charCodeAt(1);// 返回 97
测试看看‹/›

方括号表示法[]

您可以使用方括号表示法返回字符串中的任何字符[]。

在方括号内,包括要返回的字符的索引号。

var str = 'Hello Javascript (cainiaojc.com)';
str[0];// 返回 P
str[1];// 返回 a
测试看看‹/›

完整的字符串参考

有关完整的属性和方法参考,请访问我们的JavaScript String Reference

参考部分包含所有字符串属性和方法的描述和示例。

JavaScript菜鸟教程
JavaScript 对象
JavaScript 函数
JS HTML DOM
JS 浏览器BOM
AJAX 菜鸟教程
JavaScript 参考手册