JavaScript学习手册(六)

字符串

JavaScript 字符串用于存储和操作文本。

定义

JavaScript 字符串是引号中的零个或多个字符。

var carname = "Porsche 911";
var carname = 'Porsche 911';
字符串处理方法
length

内建属性 length 可返回字符串的长度

charAt(index)
  • 根据索引(index:number)获取字符串的字符
  • index为负数则为倒数第index个字符
charCodeAt(index)
  • charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码:
  • index为负数则为倒数第index个字符
样例1
let str = "hello world";
//获取字符串长度
let len = str.length;
//获取字符串上某个字符
let index = 6;
let char = str.charAt(index);
//获取字符串上某个字符的Unicode编码
let charUnicode = str.charCodeAt(index);
indexOf(【String,number】)
  • 返回字符串中指定文本首次出现的索引(位置):
  • 如果未找到文本, indexOf() 返回 -1。
  • 第二个参数,为检索的起始位置。
lastindexOf(【String,number】)
  • 方法返回指定文本在字符串中最后一次出现的索引:
  • 如果未找到文本lastIndexOf() 返回 -1。
  • 第二个参数为检索的起始位置。
search(String)

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

search和indexOf区别
  • search() 方法无法设置第二个开始位置参数。(支持正则表达式)
  • indexOf() 方法无法设置更强大的搜索值(不支持正则表达式)。
match(regexp)
  • match() 方法根据正则表达式在字符串中搜索匹配项,并将匹配项作为 Array 对象返回。
  • 如果正则表达式不包含 g 修饰符(执行全局搜索),match() 方法将只返回字符串中的第一个匹配项。
includes(【String|number】)
  • 如果字符串包含指定值,includes() 方法返回 true。
  • 不包含则返回FALSE
  • 第二个参数为可选,代表起始的位置
startsWith(String|number)
  • 如果字符串以指定值开头,则 startsWith() 方法返回 true,否则返回 false
  • 第二个参数为可选,代表起始的位置
endsWith(String)
  • 如果字符串以指定值结尾,则 endsWith() 方法返回 true,否则返回 false
  • 第二个参数为可选,代表搜索的长度
样例2
//获取子串首次出现第一个字母的索引
let indexStr = str.indexOf("ld");
let fail = str.indexOf("xx");
//获取子串最后一次出现所在的索引
let lastIndex = str.lastIndexOf("l");
lastIndex = str.lastIndexOf("l", 5);

let str = "i am a student from jiang nan university.";
let flag = str.includes("student");
flag = str.includes("student", 15);
flag = str.startsWith("i");
flag = str.startsWith("i", 2);
flag = str.endsWith(".");
flag = str.endsWith(".", 5);
slice(【number,number】)
  • slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。
  • 该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
  • 如果省略第二个参数,则该方法将裁剪字符串的剩余部分:【number,end】
  • 如果输入的是负数则变为倒数第number开始
substring(【number,number】)
  • substring() 提取字符串的某个部分并在新字符串中返回被提取的部分。
  • 该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
  • 如果省略第二个参数,则该方法将裁剪字符串的剩余部分:【number,end】
  • 参数不能设置为负数,只能从前往后搜索
substr(【number,number】) (被砍掉了)
  • substring() 提取字符串的某个部分并在新字符串中返回被提取的部分
  • 设置两个参数:起始参数(开始位置),长度
  • 如果省略第二个参数,则该方法将裁剪字符串的剩余部分:【number,end】
  • 如果首个参数为负,则从字符串的结尾计算位置。
样例
//划分子串
//根据区间划分
substr = str.slice(1, 5);
substr = str.slice(5);
//负数的话也是需要小到大
substr = str.slice(-5, -1);
//根据长度划分
substr = str.substring(5);
substr = str.substring(1, 3);
replace(String,String)
  • replace() 方法用另一个值替换在字符串中指定的值:
  • replace() 方法不会改变调用它的字符串。它返回的是新字符串。
  • replace() 只替换首个匹配(只替换一次)
  • replace() 对大小写敏感(只能匹配完全一样的)。
  • 如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感)
  • 请注意正则表达式不带引号。
  • 如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):
样例3
//字符串替换
let newStr = str.replace("world", "china");
//只替换一次
newStr = str.replace("o", "x");
//替换所有(默认区分大小写)
newStr = str.replace(/l/g, "x");
//不区分大小写替换
newStr = str.replace(/l/gi, "x");
toUpperCase(String)
  • toUpperCase() 把字符串转换为大写:
toLowerCase(String)
  • toLowerCase() 把字符串转换为小写:
concat(String…)
  • concat() 连接两个或多个字符串:
  • concat() 方法可用于代替加运算符
String.trim(String)
  • trim() 方法删除字符串两端的空白符:
  • 返回一个新的字符串,不是原来的字符串
  • Internet Explorer 8 或更低版本不支持 trim() 方法。
  • 如需支持 IE 8,您可搭配正则表达式使用 replace() 方法代替:
split(String)
  • split() 将字符串转换为数组:
  • 如果省略分隔符,被返回的数组将包含 index [0] 中的整个字符串。
  • 如果分隔符是 “”,被返回的数组将是间隔单个字符的数组:
//字符串大小写转换
console.log(str.toUpperCase());
console.log(str.toLowerCase());
//字符串连接
let conStr = str.concat(newStr, substr);
//去除字符串前后空格
str = "     I am a student from jiang nan university     ";
console.log(str);
str = str.trim();
//字符串转字符串数组
let arrayList = str.split(" ");
特殊字符

使用转义字符\来转义特殊字符

代码结果描述
单引号
""双引号
\\反斜杠
var x = "中国是瓷器的故乡,因此 china 与\"China(中国)\"同名。"
JavaScript 字符串模板
Back-Tics 语法

模板字面量使用反引号 (``) 而不是引号 (“”) 来定义字符串:

字符串内的引号

通过使用模板字面量,您可以在字符串中同时使用单引号和双引号:

多行字符串

模板字面量允许多行字符串:

插值
  • 模板字面量提供了一种将变量和表达式插入字符串的简单方法。
  • ${插入表达式或者变量}
  • 用真实值自动替换变量称为字符串插值
  • 模板字面量允许字符串中的表达式:
实例
//模板字符串
let str = `hello world`;
str += `' i am a boy.'`;
//拼接表达式
str = str + `${1 + 3 + ((5 * 7) / 5) * 2}`;
//拼接变量
let x = "congradulation for you";
str += `${x}`;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值