在上一章中,我们学习了字符串的基础知识,下面让我们再前进一步,开始考虑可以对具有内置方法和属性的字符串进行一些有用的操作。
原始值(例如“New Delhi”)不能具有属性或方法(因为它们不是对象)。
但是在JavaScript中,方法和属性也可用于原始值,因为JavaScript在执行方法和属性时会将原始值视为对象。
length属性返回字符串的长度。对于空字符串,长度为0。
var str = 'Java Script'; str.length;// return 11测试看看‹/›
注意:空格也算作字符:
concat()方法用于连接两个或多个字符串。
var a = 'NHOOO'; var b = 'COM'; var c = a.concat(b);测试看看‹/›
注意:所有字符串方法都返回一个新值。它们不会更改原始变量。
toUpperCase()方法返回转换为大写形式的调用字符串值。
var str1 = "nhooo.com"; var str2 = str1.toUpperCase();测试看看‹/›
toLowerCase()方法返回转换为小写形式的调用字符串值。
var str1 = "nhooo.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 = "nhooo.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()方法提取字符串的一部分,并将其作为新字符串返回,而无需修改原始字符串。
此方法有两个参数:开始索引(start)和结束索引(end)(不包括结束)。
本示例从索引3到索引9(10-1)提取字符串的一部分:
var str = 'Hello Javascript nhooo.com'; var ext = str.slice(3, 10);测试看看‹/›
注意:第一个字符的索引为0,第二个字符的索引为1,依此类推。
使用负索引从字符串末尾进行选择:
var str = 'Hello Javascript nhooo.com'; var ext = str.slice(-8, -3);测试看看‹/›
如果省略第二个参数,则此方法将切出字符串的其余部分:
var str = 'Hello Javascript nhooo.com'; var ext = str.slice(3);测试看看‹/›
下面的示例使用slice()仅提取最后一个字符:
var str = 'Hello Javascript nhooo.com'; var ext = str.slice(-1);测试看看‹/›
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()从索引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 nhooo.com'; var str2 = str1.substr(-6, 3); // tor测试看看‹/›
有三种访问字符串字符的方法:
方括号表示法[]
charAt()方法返回字符串中指定索引处的字符。
var str = 'Hello Javascript nhooo.com'; str.charAt(1);// 返回 a测试看看‹/›
下面的示例返回字符串的最后一个字符:
var str = 'Hello Javascript nhooo.com'; str.charAt(str.length-1);测试看看‹/›
charCodeAt()方法返回介于0和65535之间的整数,该整数表示给定索引处的UTF-16代码单元。
var str = 'Hello Javascript nhooo.com'; str.charCodeAt(1);// 返回 97测试看看‹/›
您可以使用方括号表示法返回字符串中的任何字符[]。
在方括号内,包括要返回的字符的索引号。
var str = 'Hello Javascript nhooo.com'; str[0];// 返回 P str[1];// 返回 a测试看看‹/›
有关完整的属性和方法参考,请访问我们的JavaScript String Reference。
参考部分包含所有字符串属性和方法的描述和示例。