1. 程式人生 > >JaveScript基礎(2)之數據類型轉換和常用字符串的操作方法

JaveScript基礎(2)之數據類型轉換和常用字符串的操作方法

obj visit placement 第一個字符 表達 indexof 停止 提取 並不是

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 處的字符。

  如果參數 startstop 相等,那麽該方法返回的就是一個空串(即長度為 0 的字符串)。如果 startstop 大,那麽該方法在提取子串之前會先交換這兩個參數。

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)之數據類型轉換和常用字符串的操作方法