JS——indexOf replace search


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() 方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM