"" //空字符串,0个字符
'testing'
"3.14"
'name="myform"'
"wouldn't you prefer O'Reily's book?"
ECMAScript3中,字符串直接量必须写在一行中,而在ECMAScript5中,字符串的直接量可以拆分为数行,每行必须以反斜线(\)结束,反斜线和行结束符都不是字符串直接量的内容。如果希望在一起,则可以使用\n转义字符。
需要注意的是,当使用单引号定界字符串时,需要格外小心英文中的缩写和所有格式写法,英文撇号和单引号是同一个字符,所以必须使用反斜线(\)来转义。
ii转义字符
在javascript字符串中,反斜线(\)有着特殊的用途,反斜线后加一个字符,就不再表示他们的字面含义了,比如\n 就是一个转义字符,它表示一个换行符。
复制代码 代码如下:
\o //NUL字符
\b //退格符
\t //水平制表符
\n //换行符
\v //垂直制表符
\f //换页符
\r //回车符
\" //双引号
\\ 反斜线
\xXX 由两位十六进制指定的Latin-1字符
\xXXXX 由四位十六进制XXXX指定的Unicode字符
iii字符串的使用
javascript的内置功能之一就是字符串连接。将运算符+用于字符串,表示字符串连接。例如
复制代码 代码如下:
var msg = "hello" + "world"; //生成字符串hello world
要确定一个字符串的长度——其所包含的16位值的个数,可以使用length属性,比如字符串s的长度。
s.length
除了length属性,字符串还提供很多可以调用的方法。
复制代码 代码如下:
var s = "hello,world";
s.charAt(0); //"h"第一个字符
s.charAt(s.length - 1) //"d"最后一个字符
s.substring(1, 4) //"ell" 2-4个字符
s.slice(1, 4) //ell 同上
s.slice(-3) // 最后出现的3个字符
s.indexOf(l ")//2字符l 第一次出现的位置
s.lastIndexOf("l") //10 字符l最后一次出现的位置
s.indexOf("l",3)//在位置3之后,l字符首次出现的位置
s.split(",") //=> ["hello","world"]分隔成子串
s.replace("h","H")// =>"Hllo,world"全文字符替换
s.toUpperCase() //=>"HELLO,WORLD"
在javascript中,字符串是固定不变的,类似replace()和toUpperCase()方法都返回了新的字符串,原来的字符本身没有发生变化。
在ECMAScript中,字符可以当做只读数组,除了使用charAt()方法,也可以使用方括弧来访问字符串中的单个字符。(16位值)
复制代码 代码如下:
s = "hello,world"
s[0] //=>"h"
s[s.length-1] //=>"d"
Foxfire很久之前就支持这样方法的字符串索引,多数现代浏览器(IE除外)也紧跟Mozailla的脚步,在ECMAScript成型之前就完成了这一特性
iiii模式匹配
javascript定义了RegExp()构造函数,用来创建表示文本模式匹配的对象,这些模式被称为“正则表达式”(regular expression),javascript彩阳Perl中的正则表达语法。String和RegExp对象均定义了利用正则表达式进行模式匹配和查找与替换的函数。