字符串的概念和定義
字符串就是一串字符,由雙(單)引號括起來换途。
字符串是 JavaScript的一種基本的數(shù)據(jù)類型咬荷。
1、var str=‘親’迷捧;? ? //基本類型
定義一個字符串變量str织咧,內(nèi)容為‘親
2胀葱、var str = new String(“hello”);? ? ? //引用類型
定義一個字符串變量str,內(nèi)容為hello笙蒙,
注意此刻str為object(對象)類型
用new產(chǎn)生的變量都是引用類型的變量抵屿,也叫對象。
3捅位、var str = String(‘hello’);
對象只是一種特殊的數(shù)據(jù)類型轧葛。對象擁有屬性和方法。
基本類型: Undefined / Boolean / Number
引用類型:Object / Array / Function / Date / String …….
字符串的概念和定義
var s1 = new String(‘hello world’);
var s2 = String(‘hello world’);
alert(typeof s1);
alert(typeof s2);
當String()和元素符new一起作為構(gòu)造函數(shù)使用時,它返
回一個新創(chuàng)建的String對象,存放的是字符串s1的字符串表
示艇搀。
當不用new運算符調(diào)用String()是尿扯,它只把s2轉(zhuǎn)換成原
始的字符串,并返回轉(zhuǎn)換后的值焰雕。
字符串
字符串的屬性
字符串的屬性
length:表示字符串的長度衷笋;
如 :? var str=“how are you”;
alert(str.length);
alert(str[0]); //獲取字符串中對應(yīng)下標的字符
ECMAScript 中的字符串是不可變的;
也就是說,字符串一旦創(chuàng)建淀散,它們的值就不能改變右莱。
var str = “親,包郵哦”;
str[0] = “唉”;? //不會改變
要改變某個變量保存的字符串,首先要銷毀原來的字符串档插,然后再用
另一個包含新值的字符串填充該變量慢蜓,
var str1 =? “Hello”;
str1 = str1+” world!”;
字符串的方法
big()? ? ? 用大號字體顯示字符串
bold()? ? ? 使用粗體顯示字符串
fixed()? ? 以打字機文本顯示字符串
strike()? ? 使用刪除線來顯示字符串
fontcolor(“#00f”)? 使用指定顏色來顯示字符串
fontsize(22)? ? 使用指定尺寸來顯示字符串
link()? ? ? 將字符串顯示為鏈接
sub()? ? ? 把字符串顯示為下標
sup()? ? ? 把字符串顯示為上標
字符串
字符串的方法
字符串的函數(shù)(方法)--字符的獲取方法
str.charAt(3)? ? //獲取下標為3的字符
str.charCodeAt(3)? //獲取下標為3的字符的編碼(ASCII碼)
String.fromCharCode(94)? ? //ASCII編碼轉(zhuǎn)換成字符
該方法是 String 的靜態(tài)方法,所以用String調(diào)用郭膛,
如:var str = String.fromCharCode(98,99); 可傳入多個參數(shù)
ASCII(American Standard Code for Information Interchange晨抡,
美國標準信息交換代碼)
字符串
字符串的方法
nstr.concat()? 連接字符串
var str1 = "hello";
var str2 = str1.concat(" world");
字符串的查找方法
n str.indexOf("abc") 查找字符串第一次出現(xiàn)的位置
var str = "abcdabcd";
var subStr = "bcd";
var index = str.indexOf(subStr);
n str.lastIndexOf("abc")? 查找字符串最后一次出現(xiàn)的位置, 如果沒
找到? 返回-1
var index = str.lastIndexOf(“abc”);
字符串
字符串的方法
n str.search()正則匹配 (返回第一次出現(xiàn)的位置)
var str = "Abcdabcd";
var index = str.search(/abc/gi);
注: g表示進行全局匹配,i表示匹配的時候忽略大小寫
n str.replace()替換字符串
var str = "how are Are are you!";
var newStr = str.replace("are", "old are");
這里的替換只能執(zhí)行一次则剃,不能夠進行全局匹配耘柱,如果需要全局匹配
,則應(yīng)使用正則表達式: str.replace(/are/gi, "old are")
字符串
1棍现、將下面的字符串str的敏感字符*用空字符串””替換; (要
正確表示*得轉(zhuǎn)義成:\*)
2调煎、將str的空格用空字符串””替換;
var str = "H e? l? ** l? ? o? ? Wo r
L d? !";
3、隨機產(chǎn)生一個四位數(shù)的驗證碼(純數(shù)字(0-9)生成一個
字符串)? Math.random()
字符串
字符串的常用函數(shù)(重要)
substring(start,end); //截取字符串范圍是[start,? end)
var? str =? “Hello world!”;
alert (str.substring(2,5));
注: 如果只有一個參數(shù), 則表示到字符串最后
split(separator, howmany)—根據(jù)分隔符己肮、拆分成數(shù)組
separator(字符串或正則表達式)
howmany(可以指定返回的數(shù)組的最大長度, 可以省略)
【注】如果空字符串(“”)用作separator,那么stringObject中的每個字
符之間都會被分割士袄。
toLowerCase() 方法用于把字符串轉(zhuǎn)換成小寫
toUpperCase() 方法用于把字符串轉(zhuǎn)換成大寫
字符串
示例
1. 去掉字符串123@zh@qq.com中的@;
2.? 任意給定的一串字符,統(tǒng)計字符串里面的大寫字母和
小寫字母的個數(shù)
3.? https://www.baidu.com/s?name=avery&age=20&sex=
male, 取出name, age和sex的值
練習(xí)
1.? 已知有兩個字符串str1 = ‘hello’ , str2 = ‘world’,將兩個
字符串組成一個;
2.? 已知字符串str = “I love BeiJing”,找出love的范圍
3.? 已知字符串str = “I hate BeiJing!”,提取第3個字符到第5
個字符
4.? 將字符串str = “When I was young, I love a girl in
neighbor class.”中,從young提取到girl谎僻。但是不許數(shù)
Math
Math對象
pMath對象
nMath對象用于執(zhí)行數(shù)學(xué)任務(wù)
pMath對象的常用函數(shù)
nMath.round(3.6)? ? //四舍五入
nMath.random()? ? ? ? ? ? ? ? //返回0-1之間的隨機數(shù)
nMath.max(num1, num2)? //返回較大的數(shù)
nMath.min(num1, num2)? //返回較小的數(shù)
nMath.abs(num)? ? //絕對值
nMath.ceil(19.3)? ? //向上取整
nMath.floor(11.8)? ? //向下取整
nMath.pow(x,y)? ? ? //x的y次方
nMath.sqrt(num)? ? //開平方
Math
練習(xí)
1, 獲取65-90中的隨機數(shù), 并將該數(shù)當成ASCII
碼,轉(zhuǎn)換成字母
Math
綜合練習(xí)
練習(xí):
給定一個字符串(包含數(shù)字,大寫字母和小寫字母)例如:
“abaasdFFggs3545jjkkGfDDsssss3444343”娄柳;問題如下:
1、字符串的長度;
2艘绍、取出指定下標位置的字符:0,3,5,9;
3赤拒、查找指定字符是否在以上字符串中存在:c;
4、替換指定的字符: 將g替換為22,ss替換為b;
5、截取指定開始下標位置到結(jié)束位置的字符串: 取得3--8(包含8)
的字符串;
6挎挖、遍歷字符串这敬,并將遍歷出的字母兩頭添加符號“@”輸出至當前
的文檔頁面, 數(shù)字按原樣顯示,每行5個;
字符串
作 業(yè)
必做:
1.? 注冊頁面的簡單數(shù)據(jù)校驗
1.? 用戶名不可以用數(shù)字開頭
2.? 用戶名長度不低于6,不高于20
3.? 密碼不能為空
4.? 輸入框中要有默認提示
5.? 所有輸入框不能為空蕉朵,并數(shù)據(jù)合法鹅颊,點擊提交才可以正確提交
表單數(shù)據(jù)
2.? 字母數(shù)字組合驗證碼(四位)
?? onblur :? 失去焦點事件
?? placeholder :? 提示文本(占位文本)
作業(yè)2
1. 找出出現(xiàn)最多的字母,找出字符串中出現(xiàn)次數(shù)最多的字母墓造,將該
字母串中出現(xiàn)次數(shù)最多的字母堪伍,將該字母和字母出現(xiàn)的次數(shù)拼接成一個
新字符串,返回新字符串
傳入:” WelcomeToQianfeng”;
返回:”e3”;? (要求編寫成函數(shù))
2. 將字符中單詞用空格隔開
已知傳入的字符串中只有字母,每個單詞的首字母大寫觅闽,請將每個
單詞用空格隔開帝雇,只保留一個單詞的首字母大寫
傳入:”HelloMyWorld”
返回:”Hello my world”
3. 已知一個字符串對象中,英語單詞用各種非字母字符分割蛉拙,統(tǒng)計
單詞的個數(shù)
傳入: “Yes,she**is%%my@love.”
作業(yè)3
1.? 將字符串按照單詞進行逆序尸闸,空格作為劃分單詞的唯一條件
傳入:”Welome to Beijing”改為 “Beijing to Welcome”
2.? 對稱數(shù)組
傳入一個數(shù)組,起元素類型與個數(shù)皆未知孕锄,返回新數(shù)組吮廉,由原數(shù)組
的元素正序反序拼接而成
傳入[“One”, “Two”,”Three”]返回[“One”,? “Two”, “Three”,”Three”,”Two”, “One”]
3. 實現(xiàn)函數(shù),查找子串出現(xiàn)的次數(shù)畸肆,返回字符串str中出現(xiàn)substring的次數(shù)
傳入:”abcabcabc”, “abc”;? 返回:3
4. 已知千鋒郵箱的用戶名只能由數(shù)字字母下劃線組成宦芦,域名為@1000phone.com
,判斷一個字符串是否是千鋒郵箱,是返回true轴脐,不是返回false调卑。
mail@1000phone.com? 是
$mail@1000phone.com? 不是
mail@1000phone.comp? 不是