字符串的概念和定義
字符串就是一串字符,由雙(單)引號括起來。
字符串是 JavaScript的一種基本的數據類型。
1、var str=‘親’;? ? //基本類型
定義一個字符串變量str,內容為‘親
2、var str = new String(“hello”);? ? ? //引用類型
定義一個字符串變量str,內容為hello,
注意此刻str為object(對象)類型
用new產生的變量都是引用類型的變量,也叫對象。
3、var str = String(‘hello’);
對象只是一種特殊的數據類型。對象擁有屬性和方法。
基本類型: 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一起作為構造函數使用時,它返
回一個新創建的String對象,存放的是字符串s1的字符串表
示。
當不用new運算符調用String()是,它只把s2轉換成原
始的字符串,并返回轉換后的值。
字符串
字符串的屬性
字符串的屬性
length:表示字符串的長度;
如 :? var str=“how are you”;
alert(str.length);
alert(str[0]); //獲取字符串中對應下標的字符
ECMAScript 中的字符串是不可變的;
也就是說,字符串一旦創建,它們的值就不能改變。
var str = “親,包郵哦”;
str[0] = “唉”;? //不會改變
要改變某個變量保存的字符串,首先要銷毀原來的字符串,然后再用
另一個包含新值的字符串填充該變量,
var str1 =? “Hello”;
str1 = str1+” world!”;
字符串的方法
big()? ? ? 用大號字體顯示字符串
bold()? ? ? 使用粗體顯示字符串
fixed()? ? 以打字機文本顯示字符串
strike()? ? 使用刪除線來顯示字符串
fontcolor(“#00f”)? 使用指定顏色來顯示字符串
fontsize(22)? ? 使用指定尺寸來顯示字符串
link()? ? ? 將字符串顯示為鏈接
sub()? ? ? 把字符串顯示為下標
sup()? ? ? 把字符串顯示為上標
字符串
字符串的方法
字符串的函數(方法)--字符的獲取方法
str.charAt(3)? ? //獲取下標為3的字符
str.charCodeAt(3)? //獲取下標為3的字符的編碼(ASCII碼)
String.fromCharCode(94)? ? //ASCII編碼轉換成字符
該方法是 String 的靜態方法,所以用String調用,
如:var str = String.fromCharCode(98,99); 可傳入多個參數
ASCII(American Standard Code for Information Interchange,
美國標準信息交換代碼)
字符串
字符串的方法
nstr.concat()? 連接字符串
var str1 = "hello";
var str2 = str1.concat(" world");
字符串的查找方法
n str.indexOf("abc") 查找字符串第一次出現的位置
var str = "abcdabcd";
var subStr = "bcd";
var index = str.indexOf(subStr);
n str.lastIndexOf("abc")? 查找字符串最后一次出現的位置, 如果沒
找到? 返回-1
var index = str.lastIndexOf(“abc”);
字符串
字符串的方法
n str.search()正則匹配 (返回第一次出現的位置)
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");
這里的替換只能執行一次,不能夠進行全局匹配,如果需要全局匹配
,則應使用正則表達式: str.replace(/are/gi, "old are")
字符串
1、將下面的字符串str的敏感字符*用空字符串””替換; (要
正確表示*得轉義成:\*)
2、將str的空格用空字符串””替換;
var str = "H e? l? ** l? ? o? ? Wo r
L d? !";
3、隨機產生一個四位數的驗證碼(純數字(0-9)生成一個
字符串)? Math.random()
字符串
字符串的常用函數(重要)
substring(start,end); //截取字符串范圍是[start,? end)
var? str =? “Hello world!”;
alert (str.substring(2,5));
注: 如果只有一個參數, 則表示到字符串最后
split(separator, howmany)—根據分隔符、拆分成數組
separator(字符串或正則表達式)
howmany(可以指定返回的數組的最大長度, 可以省略)
【注】如果空字符串(“”)用作separator,那么stringObject中的每個字
符之間都會被分割。
toLowerCase() 方法用于把字符串轉換成小寫
toUpperCase() 方法用于把字符串轉換成大寫
字符串
示例
1. 去掉字符串123@zh@qq.com中的@;
2.? 任意給定的一串字符,統計字符串里面的大寫字母和
小寫字母的個數
3.? https://www.baidu.com/s?name=avery&age=20&sex=
male, 取出name, age和sex的值
練習
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。但是不許數
Math
Math對象
pMath對象
nMath對象用于執行數學任務
pMath對象的常用函數
nMath.round(3.6)? ? //四舍五入
nMath.random()? ? ? ? ? ? ? ? //返回0-1之間的隨機數
nMath.max(num1, num2)? //返回較大的數
nMath.min(num1, num2)? //返回較小的數
nMath.abs(num)? ? //絕對值
nMath.ceil(19.3)? ? //向上取整
nMath.floor(11.8)? ? //向下取整
nMath.pow(x,y)? ? ? //x的y次方
nMath.sqrt(num)? ? //開平方
Math
練習
1, 獲取65-90中的隨機數, 并將該數當成ASCII
碼,轉換成字母
Math
綜合練習
練習:
給定一個字符串(包含數字,大寫字母和小寫字母)例如:
“abaasdFFggs3545jjkkGfDDsssss3444343”;問題如下:
1、字符串的長度;
2、取出指定下標位置的字符:0,3,5,9;
3、查找指定字符是否在以上字符串中存在:c;
4、替換指定的字符: 將g替換為22,ss替換為b;
5、截取指定開始下標位置到結束位置的字符串: 取得3--8(包含8)
的字符串;
6、遍歷字符串,并將遍歷出的字母兩頭添加符號“@”輸出至當前
的文檔頁面, 數字按原樣顯示,每行5個;
字符串
作 業
必做:
1.? 注冊頁面的簡單數據校驗
1.? 用戶名不可以用數字開頭
2.? 用戶名長度不低于6,不高于20
3.? 密碼不能為空
4.? 輸入框中要有默認提示
5.? 所有輸入框不能為空,并數據合法,點擊提交才可以正確提交
表單數據
2.? 字母數字組合驗證碼(四位)
?? onblur :? 失去焦點事件
?? placeholder :? 提示文本(占位文本)
作業2
1. 找出出現最多的字母,找出字符串中出現次數最多的字母,將該
字母串中出現次數最多的字母,將該字母和字母出現的次數拼接成一個
新字符串,返回新字符串
傳入:” WelcomeToQianfeng”;
返回:”e3”;? (要求編寫成函數)
2. 將字符中單詞用空格隔開
已知傳入的字符串中只有字母,每個單詞的首字母大寫,請將每個
單詞用空格隔開,只保留一個單詞的首字母大寫
傳入:”HelloMyWorld”
返回:”Hello my world”
3. 已知一個字符串對象中,英語單詞用各種非字母字符分割,統計
單詞的個數
傳入: “Yes,she**is%%my@love.”
作業3
1.? 將字符串按照單詞進行逆序,空格作為劃分單詞的唯一條件
傳入:”Welome to Beijing”改為 “Beijing to Welcome”
2.? 對稱數組
傳入一個數組,起元素類型與個數皆未知,返回新數組,由原數組
的元素正序反序拼接而成
傳入[“One”, “Two”,”Three”]返回[“One”,? “Two”, “Three”,”Three”,”Two”, “One”]
3. 實現函數,查找子串出現的次數,返回字符串str中出現substring的次數
傳入:”abcabcabc”, “abc”;? 返回:3
4. 已知千鋒郵箱的用戶名只能由數字字母下劃線組成,域名為@1000phone.com
,判斷一個字符串是否是千鋒郵箱,是返回true,不是返回false。
mail@1000phone.com? 是
$mail@1000phone.com? 不是
mail@1000phone.comp? 不是