溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

javascript replace()需要區(qū)分大小寫嗎

發(fā)布時間:2021-11-04 16:05:01 來源:億速云 閱讀:478 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“javascript replace()需要區(qū)分大小寫嗎”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“javascript replace()需要區(qū)分大小寫嗎”吧!

在javascript中,replace()函數(shù)可以利用正則表達式來不區(qū)分大小寫的替換字符串,語法“string.replace(/要查找的值/gi,"替換值")”;其中“g”代表全局替換,“i”代表忽略大小寫。

javascript replace()需要區(qū)分大小寫嗎

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

在javascript中,replace()函數(shù)可以不區(qū)分大小寫的替換字符串,這需要借助正則表達式。

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

語法:

string.replace(searchvalue,newvalue)
參數(shù)描述
searchvalue必須。規(guī)定子字符串或要替換的模式的 RegExp 對象。
請注意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉(zhuǎn)換為 RegExp 對象。
newvalue必需。一個字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。

返回值:一個新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。

replace() 方法的第二個參數(shù)可以使用函數(shù),當匹配時會調(diào)用該函數(shù),函數(shù)的返回值將作為替換文本使用,同時函數(shù)可以接收以$為前綴的特殊字符,用來引用匹配文本的相關(guān)信息。

replace() 方法第二個參數(shù)中特殊字符
約定字符串說明
$1、$2、...、$99與正則表達式中的第 1~99 個子表達式相匹配的文本
$&(美元符號+連字符)與正則表達式相匹配的子字符串
$’(美元符號+切換技能鍵)位于匹配子字符串左側(cè)的文本
$'(美元符號+單引號)位于匹配字符串右側(cè)的文本
$$表示 $ 字符串

示例1

將字符串中的字符 a(不區(qū)分大小寫) 替換為 x

<p>
將字符串中的字符 a(不區(qū)分大小寫) 替換為 x
</p>
<p id="demo"></p>

<script>
var sText = "abcdefaABC";
//g 代表全局替換  i 代表 忽略大小寫
var txt = sText.replace( /a/gi , 'x');
document.getElementById("demo").innerHTML = txt;
</script>

輸出結(jié)果:

javascript replace()需要區(qū)分大小寫嗎

示例2

下面代碼把字符串中每個單詞轉(zhuǎn)換為首字母大寫形式顯示。

var s = 'javascript is script , is not java.';  //定義字符串
//定義替換文本函數(shù),參數(shù)為第一個子表達式匹配文本
var f = function ($1) {
    //把匹配文本的首字母轉(zhuǎn)換為大寫
    return $1.substring(0,1).toUpperCase() + $1.substring(1).toLowerCase();}
var a = s.replace(/(\b\w+\b)/g, f);  //匹配文本并進行替換
console.log(a);  //返回字符串“JavaScript Is Script , Is Not Java.”

在上面示例中替換函數(shù)的參數(shù)為特殊字符“$1”,它表示正則表達式 /(\b\w+\b)/ 中小括號匹配的文本,然后在函數(shù)結(jié)構(gòu)內(nèi)對這個匹配文本進行處理,截取其首字母并轉(zhuǎn)換為大寫形式,余下字符全為小寫,然后返回新處理的字符串。replace() 方法是在原文本中使用這個返回的新字符串替換掉每次匹配的子字符串。

示例3

對于上面的示例還可以進一步延伸,使用小括號來獲取更多匹配信息。例如,直接利用小括號傳遞單詞的首字母,然后進行大小寫轉(zhuǎn)換處理,處理結(jié)果都是一樣的。

var s = 'javascript is script , is not java.';  //定義字符串
var f = function ($1,$2,$3) {  //定義替換文本函數(shù),請注意參數(shù)的變化
    return $2.toUpperCase() + $3;
}
var a = s.replace(/(\b\w+\b)/g, f);
console.log(a);

在函數(shù) f() 中,第一個參數(shù)表示每次匹配的文本,第二個參數(shù)表示第一個小括號的子表達式所匹配的文本,即單詞的首字母,第二個參數(shù)表示第二個小括號的子表達式所匹配的文本。

replace() 方法的第二個參數(shù)是一個函數(shù),replace() 方法會給它傳遞多個實參,這些實參都包含一定的意思,具體說明如下:

  • 第一個參數(shù)表示與匹配模式相匹配的文本,如上面示例中每次匹配的單詞字符串。

  • 其后的參數(shù)是與匹配模式中子表達式相匹配的字符串,參數(shù)個數(shù)不限,根據(jù)子表達式數(shù)而定。

  • 后面的參數(shù)是一個整數(shù),表示匹配文本在字符串中的下標位置。

  • 最后一個參數(shù)表示字符串自身。

示例4

把上面示例中替換文本函數(shù)改為如下形式。

var f = function() {
    return arguments[1].toUpperCase() + arguments[2];
}

也就是說,如果不為函數(shù)傳遞形參,直接調(diào)用函數(shù)的 arguments 屬性同樣能夠讀取到正則表達式中相關(guān)匹配文本的信息。其中:

  • arguments[0]:表示每次匹配的文本,即單詞。

  • arguments[1]:表示第一個子表達式匹配的文本,即單詞的首個字母。

  • arguments[2]:表示第二個子表達式匹配的文本,即單詞的余下字母。

  • arguments[3]:表示匹配文本的下標位置,如第一個匹配單詞“javascript”的下標位置就是0,以此類推。

  • arguments[4]:表示要執(zhí)行匹配的字符串,這里表示“javascript is script , is not java.”。

示例5

下面代碼利用函數(shù)的 arguments 對象主動獲取 replace() 方法的第一個參數(shù)中正則表達式所匹配的詳細信息。

var s = 'javascript is script , is not java.';  //定義字符串
var f = function () {
    for (var i = 0; i < arguments.length; i++) {
        console.log("第" + (i + 1) + "個參數(shù)的值:"+ arguments[i]);
    }
    console.log("-----------------------------");
}
var a = s.replace(/(\b\w+\b)/g, f);

在函數(shù)結(jié)構(gòu)體中,使用 for 循環(huán)結(jié)構(gòu)遍歷 arguments 屬性時,發(fā)現(xiàn)每次匹配單詞時,都會彈出 5 次提示信息,分別顯示上面所列的匹配文本信息。其中,arguments[1]、arguments[2] 會根據(jù)每次匹配文本的不同,分別顯示當前匹配文本中子表達式匹配的信息,arguments[3] 顯示當前匹配單詞的下標位置。而 arguments[0] 總是顯示每次匹配的單詞,arguments[4] 總是顯示被操作的字符串。

到此,相信大家對“javascript replace()需要區(qū)分大小寫嗎”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI