字符串是什么
字符串是零個(gè)或多個(gè)排在一起的字符,放在單引號(hào)或者雙引號(hào)之中
"123"
'123'
"abc123"
多行與轉(zhuǎn)義
轉(zhuǎn)義
問(wèn)題:
- 如果要在單引號(hào)字符串的內(nèi)部,使用單引號(hào)
- 如果要在雙引號(hào)字符串的內(nèi)部,使用雙引號(hào)
這個(gè)時(shí)候就需要使用轉(zhuǎn)義了,轉(zhuǎn)義符\
'He\'s dog'
"He has a \"pen\""
多行
字符串默認(rèn)只能寫在一行內(nèi),分成多行將會(huì)報(bào)錯(cuò)
"a
b
c
"
//"SyntaxError: Invalid or unexpected token
如果長(zhǎng)字符串必須分成多行,可以在每一行的尾部使用反斜杠\
var longString = "abc \
def \
ghi \
jkl \
mno \
pqr \
stu \
vwx \
yz";
console.log(longString); //"abc def ghi jkl mno pqr stu vwx yz"
上面的代碼表示,加了\以后,原來(lái)寫在一行的字符串,可以分成多行,效果與寫在同一行完全一樣。注意,\后面必須是換行符(即不能有其他字符,包括空格),否則報(bào)錯(cuò)。
使用連接運(yùn)算符+也可以鏈接多個(gè)單行字符串,模擬多行字符串
var longString = "abc "
+ "def "
+ "ghi "
+ "jkl "
+ "mno "
+ "pqr "
+ "stu "
+ "vwx "
+ "yz";
console.log(longString); //"abc def ghi jkl mno pqr stu vwx yz"
如果字符串的正常內(nèi)容之中,需要包含\,則\前面需要加上一個(gè)\,用來(lái)對(duì)自身轉(zhuǎn)義
"C:\\users\\"; //輸出"C:\users\"
常見(jiàn)的字符串方法
- 基礎(chǔ)方法
- 長(zhǎng)度
str.length - 獲取字符串中任意一個(gè)字符
str[0]; str[str.length-1]; str.charAt(0); str.charCodeAt(0); //獲取字符串某個(gè)字符的Unicode碼對(duì)應(yīng)的數(shù)字,0到65535之間的整數(shù)
- 字符串截取
- substr(start,length)
- start 起始字符的索引
- long 截取的長(zhǎng)度,可選
var str = "abcdefghijklmnopqrstuvwxyz"; console.log(str.substr(1,3)); //"bcd" console.log(str); //"abcdefghijklmnopqrstuvwxyz" - substring(indexStart,indexEnd)
- indexStart 起始字符的索引
- indexEnd 截止字符的索引,截取的字符串不包括這個(gè)索引對(duì)應(yīng)的字符
var str = "abcdefghijklmnopqrstuvwxyz"; console.log(str.substring(1,3)); //"bc" console.log(str); //"abcdefghijklmnopqrstuvwxyz" - slice(indexStart,indexEnd)
- indexStart 起始字符的索引
- indexEnd 截止字符的索引,截取的字符串不包括這個(gè)索引對(duì)應(yīng)的字符
var str = "abcdefghijklmnopqrstuvwxyz"; console.log(str.slice(1,3)); //"bc" console.log(str); //"abcdefghijklmnopqrstuvwxyz"
- 查找和替換
- str.search(regexp) 查詢符合規(guī)則的字符串是否在str字符串中
- 參數(shù)regexp是正則表達(dá)式,如果傳入一個(gè)非正則表達(dá)式對(duì)象,則會(huì)使用
new RegExp(obj)隱式轉(zhuǎn)換成正則表達(dá)式對(duì)象 - 如果匹配成功則返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引,否則返回-1
- 參數(shù)regexp是正則表達(dá)式,如果傳入一個(gè)非正則表達(dá)式對(duì)象,則會(huì)使用
- str.replace(regexp|substr, newSubStr|function) 替換字符串中的一部分或者全部,不改變?cè)址?,返回一個(gè)新字符串
- str.match(regexp) 按照規(guī)則查找,如果找到了,返回一個(gè)數(shù)組,如果沒(méi)有匹配到,返回null
var str = "hello my world";
console.log(str.search('my')); //6
console.log(str.replace('my', 'your')); //"hello your world"
console.log(str.match('my')); //["my"]
- 大小寫轉(zhuǎn)換
- str.toUpperCase() 將字符串的小寫字母轉(zhuǎn)換為大寫字母
- str.toLowerCase() 將字符串的大寫字母轉(zhuǎn)換為小寫字母
var str = "abcdefghijklmnopqrstuvwxyz";
console.log(str.toUpperCase()); //"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
console.log(str.toLowerCase()); //"abcdefghijklmnopqrstuvwxyz"