indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置
注釋:indexOf() 方法對大小寫敏感!如果要檢索的字符串值沒有出現,則該方法返回 -1。
語法:searchvalue,必需。規定需檢索的字符串值。fromindex,可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的首字符開始檢索。
stringObject.indexOf(searchvalue,fromindex)
<script type="text/javascript"> var str="Hello world!" document.write(str.indexOf("Hello") + "<br />") document.write(str.indexOf("World") + "<br />") document.write(str.indexOf("world")) </script>
以上代碼的輸出:
0 -1 6
replace() 方法用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
語法:regexp/substr,必需。規定子字符串或要替換的模式的 RegExp 對象。請注意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換為 RegExp 對象。replacement,必需。一個字符串值。規定了替換文本或生成替換文本的函數。
stringObject.replace(regexp/substr,replacement)
返回值:一個新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。
說明:字符串 stringObject 的 replace() 方法執行的是查找並替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來替換這些子串。如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。replacement 可以是字符串,也可以是函數。如果它是字符串,那么每個匹配都將由字符串替換。但是 replacement 中的 $ 字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用於替換。
字符 | 替換文本 |
$1、$2、...、$99 | 與 regexp 中的第 1 到第 99 個子表達式相匹配的文本 |
$& | 與 regexp 相匹配的子串 |
$` | 位於匹配子串左側的文本 |
$' | 位於匹配子串右側的文本 |
$$ | 直接量符號 |
//使用 "W3School" 替換字符串中的 "Microsoft" <script type="text/javascript"> var str="Visit Microsoft!" document.write(str.replace(/Microsoft/, "W3School")) </script> //結果:Visit W3School! //全局替換,每當 "Microsoft" 被找到,它就被替換為 "W3School" <script type="text/javascript"> 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." document.write(str.replace(/Microsoft/g, "W3School")) </script> //結果:Welcome to W3School! We are proud to announce that W3School has one of the largest Web Developers sites in the world. //確保匹配字符串大寫字符的正確 var text = "javascript Tutorial"; text.replace(/javascript/i, "JavaScript"); //把 "Doe, John" 轉換為 "John Doe" 的形式 var name = "Doe, John"; name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); //把所有的花引號替換為直引號 var name = '"a", "b"'; name.replace(/"([^"]*)"/g, "'$1'"); //把字符串中所有單詞的首字母都轉換為大寫 var name = 'aaa bbb ccc'; var uw=name.replace(/\b\w+\b/g, function(word){ return word.substring(0,1).toUpperCase()+word.substring(1);} );
search() 方法用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。
語法:regexp,該參數可以是需要在 stringObject 中檢索的子串,也可以是需要檢索的 RegExp 對象。注釋:要執行忽略大小寫的檢索,請追加標志 i。
stringObject.search(regexp)
返回值:stringObject 中第一個與 regexp 相匹配的子串的起始位置。注釋:如果沒有找到任何匹配的子串,則返回 -1。
說明:search() 方法不執行全局匹配,它將忽略標志 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字符串的開始進行檢索,這意味着它總是返回 stringObject 的第一個匹配的位置。
//檢索 "W3School" 輸出:6 <script type="text/javascript"> var str="Visit W3School!" document.write(str.search(/W3School/)) </script> //無法檢索到 w3school(因為 search() 對大小寫敏感)輸出-1 <script type="text/javascript"> var str="Visit W3School!" document.write(str.search(/w3school/)) </script> //忽略大小寫的檢索 輸出6 <script type="text/javascript"> var str="Visit W3School!" document.write(str.search(/w3school/i)) </script>
參考:JavaScript indexOf() 方法、JavaScript search() 方法、JavaScript replace() 方法