@Dale-Lin
2020-07-29T16:53:22.000000Z
字数 2611
阅读 980
JavaScript
在JS中,字符串的表示方法为用单引号(')或双引号(")加上其包含的字符序列。但是引号的使用必须是成对的,以哪种引号开始就要以哪种引号结束,否则将会导致错误。
1、字符字面量
String数据类型包含一些特殊的字符字面量,也叫转义序列。这些字符字面量如下表所示:
字面量 | 含义 |
---|---|
\n | 空格 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 进纸 |
\\ | 斜杠 |
\' | 单引号('),作为字符串中的一部分 |
\" | 双引号("),作为字符串中的一部分 |
\xnn | 以十六进制代码nn表示的一个字符(其中n为0~F) |
\unnnn | 以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F) |
可以看出,斜杠(\)其实是一种带有特殊用法的转义字符。
在使用转义序列时,每个转义序列都被视为一个字符。
2、字符串的特点
ECMAscript中的字符串是不可变的,要改变一个储存在变量中的字符串,首先要销毁原来的字符串,然后再用一个包含新值的字符串填充该变量,例如:
var lang = 'Java';
lang = lang + 'Script';
在示例中,实现的过程如下:首先创建于一个能容纳10个字符的新字符串,然后在这个字符串中填充“Java”和“Script”,再销毁原来的字符串“Java”和“Script”。
要注意,在字符串的运算中,如果算式中还包含有数值,那么数值将被转化成字符串,再进行相加。
3、转化为字符串
将一个值转化为字符串有两种方法:
另外,这两种方法在使用上也有所不同,对于toString()来说,使用时要用上点操作符,而对于String来说,不像是调用一个内置方法,更像是调用一个输入参数的函数:
var numToString = 666;
var newNumToString1 = numToString.toString(); //使用toString方法
var newNumToString2 = String(numToString); //使用String()函数
参考:《JavaScript高级程序设计》(第三版)
4、string.toUpperCase()
此方法用于将字符串转化为大写,并返回结果。
5、string.prototype.substring()
语法
str.substring(indexStart[, indexEnd])
substring()提取indexStart到indexEnd之间的字符。
如果:
function replaceString(oldS, newS, fullS){
//replaces oldS with newS in the string fullS
for(var i = 1; i < fullS.length; i++){
if (fullS.substring(i, i+oldS.length) == oldS) {
fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
}
}
return fullS;
}
replaceString("World", "Web", "Brave New World");
7、string.trim()
语法
str.trim()
str.trim()用于删除字符串前缀和末尾的空格。
var stringValue = " hello world ";
var trimmedStringValue = stringValue.trim();
document.write(trimmedStringValue); //"hello world"
8、string.toLowerCase()/toUpperCase()
语法
str.toLowerCase()
/ str.toUpperCase()
这两个方法用于转换字符的大小写。
另有.toLocaleLowerCase()
/.toLocaleUpperCase()
,对某些语言能准确转换。
9、string.localeCompare()
语法
referenceStr.localeCompare(compareString[, locales[, options]])
locales/options 参数让程序指定用来排序的语言。
该方法返回一个数字,表示 调用字符串 是否排在 比较字符串 的前面。
可用于字符串排序!
语法
str.replace(regexp|substr, newSubstr|function)
如果replace()的第一个参数是正则表达式,并且为全局匹配模式,那么第二个参数的函数将被多次调用,每一次匹配都会调用。
语法
str.split([separator[, limit]])
split()
方法使用指定的分隔符将一个String对象分割成字符串数组。
如果使用空字符串""作为分隔符,则字符串会在每个字符之间分割。
找到分隔符后,将其从原字符串中删除。
"Webkit Moz O ms Khtml".split(" "); //["Webkit, "Moz", "O", "ms", "Khtml"]