[关闭]
@Dale-Lin 2020-07-29T16:53:22.000000Z 字数 2611 阅读 980

JS String

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之间的字符。

如果:

  1. function replaceString(oldS, newS, fullS){
  2. //replaces oldS with newS in the string fullS
  3. for(var i = 1; i < fullS.length; i++){
  4. if (fullS.substring(i, i+oldS.length) == oldS) {
  5. fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
  6. }
  7. }
  8. return fullS;
  9. }
  10. replaceString("World", "Web", "Brave New World");

7、string.trim()
语法
str.trim()
str.trim()用于删除字符串前缀和末尾的空格。

  1. var stringValue = " hello world ";
  2. var trimmedStringValue = stringValue.trim();
  3. 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 参数让程序指定用来排序的语言。
该方法返回一个数字,表示 调用字符串 是否排在 比较字符串 的前面。

可用于字符串排序!


  1. String.prototype.replace

语法

str.replace(regexp|substr, newSubstr|function)

如果replace()的第一个参数是正则表达式,并且为全局匹配模式,那么第二个参数的函数将被多次调用,每一次匹配都会调用。


  1. String.prototype.split()

语法

str.split([separator[, limit]])

split()方法使用指定的分隔符将一个String对象分割成字符串数组。

如果使用空字符串""作为分隔符,则字符串会在每个字符之间分割。

找到分隔符后,将其从原字符串中删除。

  1. "Webkit Moz O ms Khtml".split(" "); //["Webkit, "Moz", "O", "ms", "Khtml"]
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注