字符串
http://book.jirengu.com/fe/前端基礎(chǔ)/Javascript/字符串.html
字符串就是零個或多個排在一起的字符,放在單引號或雙引號之中。
'abc'
"abc"
單引號字符串的內(nèi)部,可以使用雙引號。雙引號字符串的內(nèi)部,可以使用單引號。
'key="value"'
"It's a long journey"
多行與轉(zhuǎn)義
如果要在單引號字符串的內(nèi)部,使用單引號(或者在雙引號字符串的內(nèi)部,使用雙引號),
就必須在內(nèi)部的單引號(或者雙引號)前面加上反斜杠,用來轉(zhuǎn)義。
'Did she say \'Hello\'?'
// "Did she say 'Hello'?"
"Did she say \"Hello\"?"
// "Did she say "Hello"?"
換行:
vstr6 ='hello\
world'
var str7 ='hello\n world'
字符串默認只能寫在一行內(nèi),分成多行將會報錯。
'a
b
c'
// SyntaxError: Unexpected token ILLEGAL
上面代碼將一個字符串分成三行,JavaScript就會報錯。
如果長字符串必須分成多行,可以在每一行的尾部使用反斜杠。
var longString = "Long \
long \
long \
string";
longString
// "Long long long string"
上面代碼表示,加了反斜杠以后,原來寫在一行的字符串,可以分成多行,效果與寫在同一行完全一樣。注意,反斜杠的后面必須是換行符,而不能有其他字符(比如空格),否則會報錯。
連接運算符(+)可以連接多個單行字符串,用來模擬多行字符串。
var longString = 'Long '
+ 'long '
+ 'long '
+ 'string';
···
另外,有一種利用多行注釋,生成多行字符串的變通方法。
···
(function () { /*
line 1
line 2
line 3
*/}).toString().split('\n').slice(1,-1).join('\n')
// "line 1 line 2 line 3"
···
反斜杠在字符串內(nèi)有特殊含義,用來表示一些特殊字符,所以又稱為轉(zhuǎn)義符。
如果字符串的正常內(nèi)容之中,需要包含反斜杠,則反斜杠前需要再加一個反斜杠,用來對自身轉(zhuǎn)義。
···
"Prev \\ Next"
// "Prev \ Next"
常見的字符串方法
長度計算,連接
var str = "hello";
console.log( str.length );
console.log( str[0] );
console.log( str[str.length - 1] );
console.log( str.charAt(0) );
console.log( str.charCodeAt(0) );'a'.charCodeAt(0)的碼是97
var str2 = " world";
var str3 = str1 + str2;
cosnole.log( str3 );
字符串截取
var str = "hello world";
var sub1 = str.subStr(1, 3); // 第一個是開始位置, 第二個是長度 ell
var sub2 = str.subString(1, 3); // 第一個是開始位置,第二個是結(jié)束位置,長度為第二個-第一個 el
var sub3 = str.slice(1, 3); // 同上 允許負參
查找
var str = "hello my world";
var s1 = str.search('my'); //6 找不到為-1
var s2 = str.replace('my', 'your'); //
var s3 = str.match('my'); //返回匹配的數(shù)組
4. 大小寫
var str = "Hello";
str.toUpperCase();
str.toLowerCase();
5. str11.split('')字符串切割
var str = 'abcdefg'
str.split('')
str.split('').reverse()
str.split('').reverse().join('')
str == str.split('').reverse().join('')
str = 'abcdefgfedcba'
str == str.split('').reverse().join('')
function isReverse(str){
return str ===str.split('').reverse().join()
}
相關(guān)作業(yè):
1、使用數(shù)組拼接出如下字符串
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTpl(data){
var getData =
'<dl class="product">'+'\n'
+'\t'+'<dt>'+data.name+'</dt>'+'\n'
+'\t'+'<dd>'+data.styles[0]+'</dd>'+'\n'
+'\t'+'<dd>'+data.styles[1]+'</dd>'+'\n'
+'\t'+'<dd>'+data.styles[2]+'</dd>'+'\n'
+'</dl>';
return getData;
}
var result = getTpl(prod); //result為下面的字符串
console.log(result);
<dl class="product">
<dt>女裝</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春裝</dd>
</dl>
2、寫一個函數(shù),判斷一個字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var a = 'abcdcba';
var b = 'abcdcbb';
function isReverse(str){
return ===str.split('').reverse().join('');
}
console.log (isReverse(a));
console.log (isReverse(b));