JaveScript基礎(2)之數據類型轉換和常用字符串的操作方法
1、JaveScript數據類型轉換:
A、轉字符串:通過“+”或toString();
PS:如果都是數值類型,‘+’會進行求和運算,否則會做字符串連接;
var s=2.5;d=3;
alert(s+d);//5.5 var s=2.5;d=‘test‘;
alert(s+d);//2.5test
B、轉整形:parseInt();
C、轉浮點型:parseFloat();
PS:parseInt() 和parseFloat() 的區別在於:
parseFloat() 所解析的字符串中第一個小數點是有效的,而parseInt() 遇到小數點會停止解析,因為小數點並不是有效的數字字符。
parseFloat() 始終會忽略前導的零,十六進制格式的字符串始終會被轉換成0,而parseInt() 第二個參數可以設置基數,按照這個基數的進制來轉換。
2、JaveScript常用字符串的操作方法
A、charAt(index):index必需,表示字符串中某個位置的數字,即字符在字符串中的下標,index從0開始
var str="Hello world!" alert(str.charAt(1));//e
B、toLowerCase():將所有字符串轉換為小寫字母;
toUpperCase():將所有字符串轉換為大寫字母;
var str="Hello World!" console.log(str.toLowerCase());//hello world! console.log(str.toUpperCase());HELLO WORLD!
C、indexOf()
stringObject.indexOf(searchvalue,fromindex)方法可返回某個指定的字符串值在字符串中首次出現的位置。
searchvalue:必需。規定需檢索的字符串值
fromindex:可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到stringObject.length - 1。如省略該參數,則將從字符串的首字符開始檢索。
indexOf() 方法對大小寫敏感!
如果要檢索的字符串值沒有出現,則該方法返回 -1。
var str="Hello world!"; console.log(str.indexOf("Hello"));//0 console.log(str.indexOf("World"));//-1 console.log(str.indexOf("world"));//0
D、lastIndexOf()
stringObject.lastIndexOf(searchvalue,fromindex)方法可返回一個指定的字符串值最後出現的位置,在一個字符串中的指定位置從後向前搜索。
searchvalue:必需。規定需檢索的字符串值。
fromindex:可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的最後一個字符處開始檢索
lastIndexOf() 方法對大小寫敏感
如果要檢索的字符串值沒有出現,則該方法返回 -1。
var str="Hello world!"; console.log(str.lastIndexOf("Hello"));//0 console.log(str.lastIndexOf("World"));//-1 console.log(str.lastIndexOf("world"));//6
E、substring()
stringObject.substring(start,stop)方法用於提取字符串中介於兩個指定下標之間的字符。
star:必需。一個非負的整數,規定要提取的子串的第一個字符在 stringObject 中的位置。
stop:可選。一個非負的整數,比要提取的子串的最後一個字符在 stringObject 中的位置多 1。如果省略該參數,那麽返回的子串會一直到字符串的結尾。
substring() 方法返回的子串包括 start 處的字符,但不包括 stop 處的字符。
如果參數 start 與 stop 相等,那麽該方法返回的就是一個空串(即長度為 0 的字符串)。如果 start 比 stop 大,那麽該方法在提取子串之前會先交換這兩個參數。
var str="Hello world!"; console.log(str.substring(3));//lo world! console.log(str.substring(3,7));//lo w
F、slice()
stringObject.slice(start,end)方法可提取字符串的某個部分,並以新的字符串返回被提取的部分。
start:要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
end: 緊接著要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那麽它規定的是從字符串的尾部開始算起的位置。
var str="Hello happy world!"; console.log(str.slice(6));//happy world! console.log(str.slice(6,11));//happy
G、concat()
stringObject.concat(stringX,stringX,...,stringX)方法用於連接兩個或多個字符串。
stringX :必需。將被連接為一個字符串的一個或多個字符串對象。
請註意,使用 " + " 運算符來進行字符串的連接運算通常會更簡便一些。
var str1="Hello "; var str2="world!"; console.log(str1.concat(str2));//Hello world!
H、replace()
stringObject.replace(regexp/substr,replacement)方法用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
regexp/substr:必需。規定子字符串或要替換的模式的 RegExp 對象。請註意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換為 RegExp 對象。
replacement:必需。一個字符串值。規定了替換文本或生成替換文本的函數。
字符串 stringObject 的 replace() 方法執行的是查找並替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然後用 replacement 來替換這些子串。如果 regexp 具有全局標誌 g,那麽 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。
var str="Visit Microsoft!" console.log(str.replace(/Microsoft/, "W3School"));//Visit W3School! var str="Welcome to Microsoft! " str=str + "We are proud to announce that Microsoft has " str=str + "one of the largest Web Developers sites in the world." console.log(str.replace(/Microsoft/g, "W3School")); //Welcome to W3School! We are proud to announce that W3School has one of the largest Web Developers sites in the world. console.log(str.replace(/Microsoft/, "W3School")); //Welcome to W3School! We are proud to announce that Microsoft has one of the largest Web Developers sites in the world.
I、split()
stringObject.split(separator,howmany)方法用於把一個字符串分割成字符串數組
separator:必需。字符串或正則表達式,從該參數指定的地方分割 stringObject。
howmany:可選。該參數可指定返回的數組的最大長度。如果設置了該參數,返回的子串不會多於這個參數指定的數組。如果沒有設置該參數,整個字符串都會被分割,不考慮它的長度。
var str="How are you doing today?"; console.log(str.split(" "));// ["How", "are", "you", "doing", "today?"] console.log(str.split(""));//["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"] console.log(str.split(" ",3));//["How", "are", "you"] "2:3:4:5".split(":");//["2", "3", "4", "5"] "|a|b|c".split("|");//["", "a", "b", "c"]
J、match()
stringObject.match(searchvalue);
stringObject.match(regexp);
searchvalue:必需。規定要檢索的字符串值。
regexp:必需。規定要匹配的模式的 RegExp 對象。如果該參數不是 RegExp 對象,則需要首先把它傳遞給 RegExp 構造函數,將其轉換為 RegExp 對象。
match() 方法將檢索字符串 stringObject,以找到一個或多個與 regexp 匹配的文本。這個方法的行為在很大程度上有賴於 regexp 是否具有標誌 g。
如果 regexp 沒有標誌 g,那麽 match() 方法就只能在 stringObject 中執行一次匹配。如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其余的元素存放的是與正則表達式的子表達式匹配的文本。除了這些常規的數組元素之外,返回的數組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對 stringObject 的引用。
如果 regexp 具有標誌 g,則 match() 方法將執行全局檢索,找到 stringObject 中的所有匹配子字符串。若沒有找到任何匹配的子串,則返回 null。如果找到了一個或多個匹配子串,則返回一個數組。不過全局匹配返回的數組的內容與前者大不相同,它的數組元素中存放的是 stringObject 中所有的匹配子串,而且也沒有 index 屬性或 input 屬性。
var str="Hello world!"; console.log(str.match("world")); //["world", index: 6, input: "Hello world!"] console.log(str.match("World"));//null console.log(str.match("worlld"));//null console.log(str.match("world!")); //["world!", index: 6, input: "Hello world!"] var str="1 plus 2 equal 3"; console.log(str.match(/\d+/g));//["1", "2", "3"]
K、search()
stringObject.search(regexp)
regexp:該參數可以是需要在 stringObject 中檢索的子串,也可以是需要檢索的 RegExp 對象。註釋:要執行忽略大小寫的檢索,請追加標誌 i。
search() 方法不執行全局匹配,它將忽略標誌 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字符串的開始進行檢索,這意味著它總是返回 stringObject 的第一個匹配的位置
如果沒有找到任何匹配的子串,則返回 -1。
var str="Visit W3School!"; console.log(str.search(/W3School/));//6 console.log(str.search(/w3school/));//-1 console.log(str.search(/w3school/i));//6
JaveScript基礎(2)之數據類型轉換和常用字符串的操作方法